dask.dataframe.DataFrame.memory_usage

dask.dataframe.DataFrame.memory_usage

DataFrame.memory_usage(index=True, deep=False)[源代码]

返回每个列的内存使用情况,以字节为单位。

此文档字符串是从 pandas.core.frame.DataFrame.memory_usage 复制而来的。

Dask 版本可能存在一些不一致性。

内存使用情况可以选择性地包括索引和 object dtype 元素的贡献。

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

参数
索引bool, 默认 True

指定是否在返回的 Series 中包含 DataFrame 索引的内存使用情况。如果 index=True,则索引的内存使用情况是输出的第一项。

深度bool, 默认 False

如果为 True,则通过查询 object 数据类型来深入检查数据,以获取系统级内存消耗,并将其包含在返回值中。

返回
系列

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

参见

numpy.ndarray.nbytes

ndarray 元素消耗的总字节数。

Series.memory_usage

一个 Series 消耗的字节数。

Categorical

用于字符串值的高效内存数组,适用于重复值较多的情况。

DataFrame.info

DataFrame 的简明摘要。

注释

更多详情请参见 常见问题

示例

>>> dtypes = ['int64', 'float64', 'complex128', 'object', 'bool']  
>>> data = dict([(t, np.ones(shape=5000, dtype=int).astype(t))  
...              for t in dtypes])
>>> df = pd.DataFrame(data)  
>>> df.head()  
   int64  float64            complex128  object  bool
0      1      1.0              1.0+0.0j       1  True
1      1      1.0              1.0+0.0j       1  True
2      1      1.0              1.0+0.0j       1  True
3      1      1.0              1.0+0.0j       1  True
4      1      1.0              1.0+0.0j       1  True
>>> df.memory_usage()  
Index           128
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64
>>> df.memory_usage(index=False)  
int64         40000
float64       40000
complex128    80000
object        40000
bool           5000
dtype: int64

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

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

使用分类类型(Categorical)来高效存储一个对象类型的列,该列包含许多重复值。

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