pandas中的空值 - 大多数内存有效的方法来过滤掉某些列的空值但保留一列的空值?

时间:2018-02-09 17:24:29

标签: python pandas numpy filter nan

使用Python,我有一个大文件(数百万行),我正在使用pd.read_csv阅读Pandas。我的目标是尽量减少我使用的内存量。

在文件中的大约15列中,我只想保留6列。在这6列中,我对空行有不同的需求。

具体来说,对于5列,我想过滤/忽略所有空行。但是对于其中一列,我只需要保留空行。

最节省内存的方法是什么?

我想我有两个问题:

首先,看一下the documentation for Pandas read_csv,我不清楚是否有办法过滤掉空行。是否有一组read_csv的参数和规范 - 或者用其他方法 - 我可以用来过滤掉空行?

其次,是否可以仅为某些列过滤掉空行,但是为我的一列保留所有空行?

1 个答案:

答案 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()