当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame memory_usage方法用法及代码示例


Pandas DataFrame.memory_usage(~) 返回每列占用的内存量(以字节为单位)。

参数

1.index | boolean | optional

是否也包括索引(行标签)的内存使用情况。默认情况下,index=True

2. deep | boolean | optional

是否查看 object 类型的实际内存使用情况。对于包含对象类型(例如字符串)的DataFrames,内存使用情况将不准确。这是因为该方法对 object 类型消耗的内存进行粗略估计。默认情况下,deep=False

返回值

Series,保存源 DataFrame 每一列的内存使用情况(以字节为单位)。

例子

基本用法

考虑以下 DataFrame :

df = pd.DataFrame({"A":[4,5,6],"B":["K","KK","KKK"], "C": [True,False,True], "D":[4.0,5.0,6.0]}, index=[10,11,12])
df



    A  B    C      D
10  4  K    True   4.0
11  5  KK   False  5.0
12  6  KKK  True   6.0

以下是数据类型的细分:

df.dtypes



A      int64
B     object
C       bool
D    float64
dtype: object

计算每列的内存使用情况:

df.memory_usage()



Index    24
A     24
B     24
C     3
D     24
dtype: int64

AD 分别使用类型int64float6464 位等于 8 字节,并且由于每列中有 3 个值,因此 AD 列的总内存使用量为 8*3=24

接下来,让我们处理布尔列。每个布尔值占用 1 字节,因此该列总共使用 1*3=3 字节。

最后,让我们看看 B 列,它保存数据类型 string 。在 Pandas 中,所有字符串都被归类为对象。默认情况下,memory_usage 方法天真地假设每个对象占用 8 个字节的内存,而不进行任何形式的检查。然而,实际消耗的内存显然会根据对象的内部结构而有所不同(例如,长字符串比短字符串占用更多空间)。我们可以通过设置 deep=True 来更准确地表示内存使用情况。

指定深度=True

要更准确地表示 object 类型的内存消耗:

df.memory_usage(deep=True)



Index     24
A     24
B     185
C     3
D     24
dtype: int64

我们看到B 列实际上占用了 185 个字节。

指定索引=False

要排除索引(行标签)的内存使用情况:

df.memory_usage(index=False)



A    24
B    24
C     3
D    24
dtype: int64

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | memory_usage method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。