Хотя я согласен с комментариями о том, что знание подробностей файла было бы крайне важно для предоставления фактического рабочего ответа, у меня была похожая проблема, и я решил ее с помощью панд.
Метод .read_csv в pandas будет использовать программу чтения csv только для частичного чтения файлов csv без загрузки всего файла в память. Лучше всего сделать несколько проб и ошибок и посмотреть, сколько строк может поддерживать ваша система за один раз
import pandas as pd
num_rows = 6000 # or some value which depends on system memory
NewDf1 =pd.DataFrame()
NewDf2 = pd.DataFrame()
for i in range(start,stop,num_rows):
rawdata_df = pd.read_csv(filename,skiprows=range(1,i),nrows=num_rows)
NewDf1.append(rawdata_df[rawdata_df.iloc[1]>0],ignore_index=True)
NewDf2.append(rawdata_df[rawdata_df.iloc[2]>0],ignore_index=True)
В конце, в зависимости от вашей реальной системной памяти и структуры файлов (поскольку размер кадра данных зависит также от количества столбцов и структуры данных), вы можете сохранить отдельные кадры данных в отдельных csvs
if len(NewDf1) > toolarge:
NewDf1.to_csv('newdf1Filename.csv')