У меня есть довольно большой файл с фиксированной шириной (~ 30 миллионов строк, 4 ГБ), и когда я попытался создать DataFrame с помощью pandas read_fwf(), он загрузил только часть файла, и мне было просто любопытно, была ли у кого-нибудь аналогичная проблема с этот парсер не читает все содержимое файла.
import pandas as pd
file_name = r"C:\....\file.txt"
fwidths = [3,7,9,11,51,51]
df = read_fwf(file_name, widths = fwidths, names = [col0, col1, col2, col3, col4, col5])
print df.shape #<30M
Если я наивно прочитаю файл в 1 столбец с помощью read_csv(), весь файл будет прочитан в память, и данные не будут потеряны.
import pandas as pd
file_name = r"C:\....\file.txt"
df = read_csv(file_name, delimiter = "|", names = [col0]) #arbitrary delimiter (the file doesn't include pipes)
print df.shape #~30M
Конечно, не видя содержимого или формата файла, он мог быть связан с чем-то на моей стороне, но хотел узнать, не возникало ли у кого-нибудь еще каких-либо проблем с этим в прошлом. Я проверил работоспособность и протестировал пару строк глубоко в файле, и все они, похоже, отформатированы правильно (дополнительная проверка, когда я смог перенести это в БД Oracle с помощью Talend, используя те же спецификации).
Дайте знать, если у кого есть идеи, было бы здорово запустить все через Python и не метаться туда-сюда, когда я начну разрабатывать аналитику.