在处理大型数据集时,Pandas 是一个非常强大的工具,但同时也可能消耗大量内存。以下是一些优化 Pandas 内存使用的技巧。
1. 使用合适的数据类型
Pandas 默认使用对象(object)数据类型,这可能导致不必要的内存消耗。你可以通过指定合适的数据类型来减少内存使用。
- 将整数列转换为
int32
或int16
,如果数据范围允许。 - 将浮点列转换为
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.DataFrame
的 info()
方法
info()
方法可以显示 DataFrame 的内存使用情况,帮助你识别内存消耗高的列。
df.info(memory_usage='deep')
6. 使用 pandas.HDFStore
或 pandas.HDFStore
文件
将数据存储在 HDF5 文件中可以更有效地使用内存,特别是对于大型数据集。
store = pd.HDFStore('data.h5')
store.put('df', df)
store.close()
扩展阅读
更多关于 Pandas 的内存优化技巧,可以参考我们的 Pandas 内存优化指南。
Pandas Logo