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