pandas.DataFrame.memory_usage #

数据框。memory_usage ( index = True , deep = False ) [来源] #

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

内存使用情况可以选择包括对象数据类型的索引和元素的贡献。

默认情况下,该值显示在DataFrame.info中。这可以通过设置pandas.options.display.memory_usage为 False 来抑制。

参数
索引bool,默认 True

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

布尔值,默认 False

如果为 True,则通过询问对象数据类型以了解系统级内存消耗来深入内省数据 ,并将其包含在返回值中。

返回
系列

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

也可以看看

numpy.ndarray.nbytes

ndarray 元素消耗的总字节数。

Series.memory_usage

系列消耗的字节数。

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

默认情况下会忽略对象数据类型列的内存占用:

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

使用分类可以有效存储具有许多重复值的对象数据类型列。

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