Панды: заполнение фиксированного числа новых столбцов структурой данных с таким же фиксированным числом повторений - PullRequest
0 голосов
/ 30 ноября 2018

сначала я извиняюсь за название, но это было трудно сформулировать.

Итак, у меня есть DataFrame, который выглядит так:

I | A   | B
-------------
x | xA1 | xB1
x | xA2 | xB2
x | xA3 | xB3
y | yA1 | yB1
y | yA2 | yB2
y | xA3 | yB3
z | zA1 | zB1
z | zA2 | zB2
z | zA3 | zB3
...etc

Где I - индекс иA и B - столбцы.Dataframe всегда имеет одинаковое количество повторяющихся индексов, 3.

Я хотел бы иметь только один индекс и в три раза больше столбцов с соответствующими значениями, что-то вроде:

I | A1  | A2  | A3  | B1  | B2  | B3  |
---------------------------------------
x | xA1 | xA2 | xA3 | xB1 | xB2 | xB3
...etc

DataFrame действительно большой в моем проекте, так что с помощью iterrows для заполнения вручную второй слишком медленный для использования, есть ли быстрый (э) способ сделать это?

Спасибовы!

1 Ответ

0 голосов
/ 30 ноября 2018

Я бы, вероятно, попытался повернуть кадр данных.Я думаю, что вам придется добавить еще один столбец, чтобы он работал (и вы получите мультииндекс для своих столбцов)

df['idx_level'] = list(range(0,3)) * (df.shape[0] / 3)
pivoted_df = df.pivot(index = None, columns = 'idx_level')

Вы можете сокрушить мультииндекс до одного уровня довольнолегко, если вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...