使用Python,我有一个大文件(数百万行),我正在使用pd.read_csv阅读Pandas。我的目标是尽量减少我使用的内存量。
在文件中的大约15列中,我只想保留6列。在这6列中,我对空行有不同的需求。
具体来说,对于5列,我想过滤/忽略所有空行。但是对于其中一列,我只需要保留空行。
最节省内存的方法是什么?
我想我有两个问题:
首先,看一下the documentation for Pandas read_csv,我不清楚是否有办法过滤掉空行。是否有一组read_csv的参数和规范 - 或者用其他方法 - 我可以用来过滤掉空行?
其次,是否可以仅为某些列过滤掉空行,但是为我的一列保留所有空行?
答案 0 :(得分:0)
我建议你使用dask.dataframe
。语法是类似熊猫的,但它处理分块和最佳内存管理。只有当您需要内存中的结果时,才应将数据帧转换回pandas
,当然您需要足够的内存来将结果保存在数据帧中。
import dask.dataframe as dd
df = dd.read_csv('file.csv')
# filtering and manipulation logic
df = df.loc[....., ....]
# compute & return to pandas
df_pandas = df.compute()