當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。