pandas.DataFrame.memory_usage#

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

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

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

该值显示在 DataFrame.info 默认情况下。这可以通过设置 pandas.options.display.memory_usage 变成假的。

参数
index布尔值,默认为True

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

deep布尔值,默认为False

如果是真的,通过询问深入反思数据 object 系统级内存消耗的数据类型,并将其包括在返回值中。

退货
系列

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

参见

numpy.ndarray.nbytes

Ndarray的元素占用的总字节数。

Series.memory_usage

系列占用的字节数。

Categorical

具有多个重复值的字符串值的内存高效型数组。

DataFrame.info

DataFrame的简明摘要。

注意事项

请参阅 Frequently Asked Questions 了解更多详细信息。

示例

>>> 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 默认情况下忽略数据类型列:

>>> 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