pandas.DataFrame.memory_usage#
- DataFrame.memory_usage(index=True, deep=False)[源代码][源代码]#
返回每个列的内存使用情况,以字节为单位。
内存使用情况可以选择性地包括索引和 object 数据类型的元素的贡献。
这个值在 DataFrame.info 中默认显示。可以通过将
pandas.options.display.memory_usage
设置为 False 来抑制显示。- 参数:
- 索引布尔值, 默认为 True
指定是否在返回的 Series 中包含 DataFrame 索引的内存使用情况。如果
index=True
,索引的内存使用情况是输出的第一项。- 深布尔值, 默认为 False
如果为真,通过询问 object dtypes 以深入内省系统级内存消耗,并将其包含在返回的值中。
- 返回:
- 系列
一个索引为原始列名且其值为每列内存使用量的序列,单位为字节。
参见
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
使用类别类型以高效存储具有许多重复值的对象类型列。
>>> df["object"].astype("category").memory_usage(deep=True) 5136