Сводная таблица на очень большом DataFrame с переменной длиной столбца для каждого чанка - PullRequest
0 голосов
/ 24 сентября 2019

У меня около 750 миллионов строк данных, которые необходимо преобразовать в сводную таблицу.

Мой подход состоял в том, чтобы прочитать данные размером в 5 миллионов, создать сводную таблицу, добавить результат в CSV-файл.файл, как показано в приведенном ниже коде

for chunk in df:
    pivot = chunk.pivot_table(values='x',index=['y'],columns=['z'], fill_value=0).reset_index()
    pivot.to_csv('mypivottable.csv', index=False, mode='a')

Проблема этого подхода заключается в том, что каждый блок данных в кадре данных имеет разное количество столбцов, а столбцы не упорядочены, поэтому при чтении файла mypivottable.csv«Я получаю сообщение об ошибке разбора из-за динамической природы столбцов.

У меня от 300 до 400 столбцов в каждом чанке, поэтому я не могу жестко закодировать имена столбцов.Ниже приведен пример того, как выглядит моя сводная таблица и как я бы хотел, чтобы она выглядела.

"A" "B" "C" "D" "E" "F"
 1   1   2  1    2   1   
 2   1   2   2   1   1  
 .....
"A" "C" "D" "B" "G"
 1   1   2   3   4
 1   1   1   2   1 

Нужная сводная таблица должна выглядеть следующим образом:

"A" "B" "C" "D" "E" "F" "G"
 1   1   2   1   2   1  null
 2   1   2   2   1   1  null
 ....
 1  3    1   2 null null 4
 1  2    1   1 null null 1

Как создатьсводная таблица, которая может быть прочитана пандами read_csv без получения ошибки разбора из-за несовместимых заголовков?

...