在处理大型数据集时,Pandas 是一个非常强大的工具,但同时也可能消耗大量内存。以下是一些优化 Pandas 内存使用的技巧。

1. 使用合适的数据类型

Pandas 默认使用对象(object)数据类型,这可能导致不必要的内存消耗。你可以通过指定合适的数据类型来减少内存使用。

  • 将整数列转换为 int32int16,如果数据范围允许。
  • 将浮点列转换为 float32
  • 将字符串列转换为分类数据类型,如果字符串重复率较高。

2. 使用 inplace=True 参数

当你修改 DataFrame 时,可以使用 inplace=True 参数直接在原始 DataFrame 上进行修改,而不是创建一个新的 DataFrame。

df['column'] = df['column'].astype('int32', inplace=True)

3. 使用 pandas.eval() 方法

pandas.eval() 方法可以在不创建新列的情况下计算表达式,这有助于减少内存使用。

df.eval('new_column = column1 + column2')

4. 使用 pandas.read_csv() 的参数

在读取 CSV 文件时,你可以使用以下参数来减少内存使用:

  • dtype:指定列的数据类型。
  • usecols:只读取需要的列。
  • low_memory:设置为 False 以避免低内存优化。
df = pd.read_csv('data.csv', dtype={'column1': 'int32', 'column2': 'float32'})

5. 使用 pandas.DataFrameinfo() 方法

info() 方法可以显示 DataFrame 的内存使用情况,帮助你识别内存消耗高的列。

df.info(memory_usage='deep')

6. 使用 pandas.HDFStorepandas.HDFStore 文件

将数据存储在 HDF5 文件中可以更有效地使用内存,特别是对于大型数据集。

store = pd.HDFStore('data.h5')
store.put('df', df)
store.close()

扩展阅读

更多关于 Pandas 的内存优化技巧,可以参考我们的 Pandas 内存优化指南

Pandas Logo