Пропустить некоторые столбцы между двумя столбцами при добавлении фрейма данных в существующую пустую область данных

В настоящее время я извлекаю данные из pdf-файлов и помещаю их в файл csv. Я объясню, как это работает.

Сначала я создаю пустой фреймворк:

ndataFrame = pandas.DataFrame()

Затем я прочитал данные. Предположим, что для простоты данные одинаковы для каждого pdf:

data = {'shoe': ['a', 'b'], 'fury': ['c','d','e','f'], 'chaos': ['g','h']}
dataFrame = pandas.DataFrame({k:pandas.Series(v) for k, v in data.items()})

Затем я добавляю эти данные в пустой фреймворк:

ndataFrame = ndataFrame.append(dataFrame)

Это результат:

  shoe fury chaos
0    a    c     g
1    b    d     h
2  NaN    e   NaN
3  NaN    f   NaN

Однако сейчас возникает проблема. Мне нужно, чтобы некоторые столбцы (скажем, 4) были пустыми между столбцами ярости и хаоса. Это мой желаемый результат:

  shoe fury                        chaos
0    a    c                         g
1    b    d                         h
2  NaN    e                         NaN
3  NaN    f                         NaN

Я пробовал некоторые вещи с переиндексацией, но я не мог понять. Любая помощь приветствуется.

Кстати, мой желаемый результат может запутать. Чтобы быть ясным, мне нужно, чтобы некоторые столбцы были полностью пустыми между яростью и хаосом (это связано с тем, что некоторые другие данные поступают туда вручную).

Спасибо за прочтение

Всего 1 ответ


Этот ответ предполагает, что у вас нет способа изменить способ чтения данных в восходящем направлении. Как всегда, лучше использовать эти типы форматирования в источнике. Если это невозможно, вот как это сделать после разбора.


Вы можете использовать reindex здесь, используя numpy.insert чтобы добавить четыре столбца:

dataFrame.reindex(columns=np.insert(dataFrame.columns, 2, [1,2,3,4]))

  shoe fury   1   2   3   4 chaos
0    a    c NaN NaN NaN NaN     g
1    b    d NaN NaN NaN NaN     h
2  NaN    e NaN NaN NaN NaN   NaN
3  NaN    f NaN NaN NaN NaN   NaN

Есть идеи?

10000