如何在python中仅读取存储在大csv文件中的数据切片

时间:2018-09-26 11:54:56

标签: python pandas

我无法将CSV文件中的数据读取到内存中,因为它太大,即使用熊猫进行pandas.read_csv操作不起作用。

我只想根据一些应该适合内存的列值来获取数据。使用假设可以包含CSV完整数据的熊猫数据框df,我会做

df.loc[(df['column_name'] == 1)

CSV文件确实包含一个标题,并且它是有序的,因此我真的不需要使用column_name,但是如果需要的话,可以使用该列的顺序。

我该如何实现?我读了一些有关pyspark的内容,但我不知道这是否有用。

1 个答案:

答案 0 :(得分:5)

您可以逐块读取csv文件,并保留要包含的行

iter_csv = pd.read_csv(='sample.csv', iterator=True, chunksize=10000,error_bad_lines=False)
data = pd.concat ([chunk.loc[chunk['Column_name']==1)] for chunk in iter_csv] )