Я пытаюсь заполнить пустой фрейм данных, используя модуль csv для перебора большого файла с разделителями табуляции и заменяя каждую строку в фрейме данных этими значениями. (Прежде чем вы спросите, да, я попробовал все обычные методы read_csv, и ничего не помогло из-за проблем с dtype и размера файла).
Сначала я создал пустой массив numpy, используя np.empty, используя измерения моих данных. Затем я преобразовал это в pandas DataFrame. Затем я сделал следующее:
with open(input_file) as csvfile:
reader = csv.DictReader(csvfile,delimiter='\t')
row_num = 0
for row in reader:
for key, value in row.items():
df.loc[row_num,key] = value
row_num += 1
Это прекрасно работает, за исключением того, что мой файл имеет 900 000 столбцов, поэтому он невероятно медленный. Это также похоже на то, что pandas может сделать более эффективно, но я не смог найти как. Словарь для каждой строки, заданной DictReader, выглядит следующим образом:
{'columnName1':<value>,'columnName2':<value> ...}
Где значения - это то, что я хочу поместить в кадр данных в эти столбцы для этой строки.
Спасибо!