我无法将CSV文件中的数据读取到内存中,因为它太大,即使用熊猫进行pandas.read_csv
操作不起作用。
我只想根据一些应该适合内存的列值来获取数据。使用假设可以包含CSV完整数据的熊猫数据框df
,我会做
df.loc[(df['column_name'] == 1)
CSV文件确实包含一个标题,并且它是有序的,因此我真的不需要使用column_name
,但是如果需要的话,可以使用该列的顺序。
我该如何实现?我读了一些有关pyspark的内容,但我不知道这是否有用。
答案 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] )