maxframe.dataframe.DataFrame.memory_usage#

DataFrame.memory_usage(index=True, deep=False)#

返回每个列的内存使用量(以字节为单位)。

内存使用量可以选择性地包括索引和 object 类型元素的贡献。

此值默认显示在 DataFrame.info 中。可以通过将 pandas.options.display.memory_usage 设置为 False 来抑制显示。

参数:
  • index (bool, default True) -- 指定是否在返回的 Series 中包含 DataFrame 索引的内存使用量。如果 index=True,则索引的内存使用量是输出中的第一项。

  • deep (bool, default False) -- 如果为 True,则通过深入检查 object 类型来获取系统级内存消耗,并将其包含在返回值中。

返回:

一个 Series,其索引为原始列名,值为每列的内存使用量(以字节为单位)。

返回类型:

Series

参见

numpy.ndarray.nbytes

ndarray 元素消耗的总字节数。

Series.memory_usage

Series 消耗的字节数。

Categorical

用于具有许多重复值的字符串的内存高效数组。

DataFrame.info

DataFrame 的简明摘要。

示例

>>> import maxframe.tensor as mt
>>> import maxframe.dataframe as md
>>> dtypes = ['int64', 'float64', 'complex128', 'object', 'bool']
>>> data = dict([(t, mt.ones(shape=5000).astype(t))
...              for t in dtypes])
>>> df = md.DataFrame(data)
>>> df.head().execute()
   int64  float64            complex128  object  bool
0      1      1.0    1.000000+0.000000j       1  True
1      1      1.0    1.000000+0.000000j       1  True
2      1      1.0    1.000000+0.000000j       1  True
3      1      1.0    1.000000+0.000000j       1  True
4      1      1.0    1.000000+0.000000j       1  True
>>> df.memory_usage().execute()
Index           128
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64
>>> df.memory_usage(index=False).execute()
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64

默认情况下,object 类型列的内存占用会被忽略:

>>> df.memory_usage(deep=True).execute()
Index            128
int64          40000
float64        40000
complex128     80000
object        160000
bool            5000
dtype: int64

使用 Categorical 来高效存储具有许多重复值的 object 类型列。

>>> df['object'].astype('category').memory_usage(deep=True).execute()
5216