DataFrame.memory_usage(index=True, deep=False)[source]
返回每列的内存使用情况(以字节为单位)。
内存使用情况可以选择包括索引和对象 dtype
元素的贡献。
默认情况下,此值显示在DataFrame.info
中。可以通过设置pandas.options.display.memory_usage
=
False
来取消这种情况。
参数: | index : 指定是否在返回的Series中包括DataFrame索引的内存使用情况。 如果 deep : 如果为 来深入了解数据 的系统级内存消耗, 并将其包含在返回值中。 |
返回值: | sizes : 一个 其值是每列的内存使用量(以字节为单位)。 |
例子
>>> dtypes = ['int64', 'float64', 'complex128', 'object', 'bool']
>>> data = dict([(t, np.ones(shape=5000).astype(t))
... for t in dtypes])
>>> df = pd.DataFrame(data)
>>> df.head()
int64 float64 complex128 object bool
0 1 1.0 (1+0j) 1 True
1 1 1.0 (1+0j) 1 True
2 1 1.0 (1+0j) 1 True
3 1 1.0 (1+0j) 1 True
4 1 1.0 (1+0j) 1 True
>>> df.memory_usage()
Index 80
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
默认情况下,将忽略对象 dtype列的内存占用量:
>>> df.memory_usage(deep=True)
Index 80
int64 40000
float64 40000
complex128 80000
object 160000
bool 5000
dtype: int64
使用分类法可有效存储具有许多重复值的object-dtype列
>>> df['object'].astype('category').memory_usage(deep=True)
5168