📜  Python|熊猫 dataframe.memory_usage()(1)

📅  最后修改于: 2023-12-03 15:34:20.213000             🧑  作者: Mango

Python | 熊猫 dataframe.memory_usage()

简介

在使用Python进行数据分析时,常常会涉及到大规模的数据集,而数据的内存占用是一个很重要的问题。Pandas是Python数据分析中一个重要的库,其提供了DataFrame数据结构用于表示处理数据,同时也提供了DataFrame的内存使用量检测方法-DataFrame.memory_usage()。

使用方法

DataFrame.memory_usage()方法能够返回DataFrame对象占用内存的信息,其最初版本的函数签名如下:

DataFrame.memory_usage(self, index=True, deep=False)

其中,index参数默认为True,表示计算索引列占用的内存;deep参数默认为False,表示只统计对象本身占用的内存,不统计其数据/子对象占用的内存。

考虑下述例子:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': np.random.randint(0, 100, size=100000),
                   'B': np.random.rand(100000),
                   'C': pd.Series([1]*100000, dtype='category'),
                   'D': pd.date_range('20210901', periods=100000, freq='S')})
In [3]: df.memory_usage(deep=True)
Out[3]:
Index        128
A         400000
B         800000
C         128184
D         800000
dtype: int64

可以看到,通过deep=True参数,我们计算出了包括索引在内的整个DataFrame对象占用的内存大小。

结语

DataFrame.memory_usage()方法能够方便地统计DataFrame对象(包括索引)占用的内存空间大小,为我们进行内存优化提供了参考。当构建更加复杂的数据结构时,我们可以通过这个方法发现占用内存较大的列,进而考虑如何进行优化。