У меня есть текстовый файл около 3,3 ГБ. Меня интересуют только 2 колонки в этом текстовом файле (из 47). Из этих 2 столбцов мне нужны только строки, где col2=='text1'
. Например, предположим, что мой текстовый файл имеет следующие значения:
текстовый файл:
col1~col2~~~~~~~~~~~~
12345~text1~~~~~~~~~~~~
12365~text1~~~~~~~~~~~~
25674~text2~~~~~~~~~~~~
35458~text3~~~~~~~~~~~~
44985~text4~~~~~~~~~~~~
Я хочу создать df
, где col2=='text1'
. То, что я сделал до сих пор, пытается загрузить весь текстовый файл в мой df
, а затем отфильтровать необходимые строки. Однако, поскольку это большой текстовый файл, создание df
занимает более 45 минут. Я считаю, что загрузка только необходимых строк (если возможно) была бы идеальной, поскольку df
был бы значительно меньшего размера, и я не буду сталкиваться с проблемами с памятью.
Мой код:
df=pd.read_csv('myfile.txt',low_memory=False,sep='~',usecols=['col1','col2'],dtype={'col2':str})
df1=df[df['col2']=='text1']
Короче говоря, можно ли отфильтровать столбец на основе критериев при загрузке текстового файла в фрейм данных, чтобы 1) Сократить время загрузки и 2 ) Уменьшите размер df
в моей памяти.