Как разбить столбец на два под одинаковым именем столбца и имеющих одинаковые значения в Python? - PullRequest
0 голосов
/ 05 февраля 2019

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

Я пытаюсь реализовать следующее в Pythonиспользуя библиотеку Pandas

Скажите, что мой фрейм данных выглядит следующим образом

        Column1  Column2
Row1       1        2
Row2       3        4 

Желаемый результат:

         Column1  Column2
 Row1     1 | 1    2 | 2
 Row2     3 | 3    4 | 4 

1 Ответ

0 голосов
/ 05 февраля 2019

Если мы начнем с вашего примера:

df = pd.DataFrame({'Column1': [1, 3],
                   'Column2': [2,4]},
                  index = ['Row1', 'Row2'])

df

      Column1   Column2
Row1        1         2
Row2        3         4
  1. Используйте методы pd.concat и interleave, чтобы создать дубликат каждого столбца и убедиться, что дубликат каждого столбца отображается справа от него:
from toolz import interleave
df = pd.concat([df, df], axis=1)[list(interleave([df]))]

На этом этапе кадр данных выглядит следующим образом:

df

     Column1 Column1 Column2 Column2
Row1       1       1       2       2
Row2       3       3       4       4
Теперь измените столбцы информационного кадра на MultiIndex:
df.columns = pd.MultiIndex(levels=[['Column1', 'Column2'], ['A', 'B']],
           labels=[[0, 0, 1, 1], [0, 1, 0, 1]])

Что приводит к тому, что информационный кадр теперь выглядит так:

df

        Column1   Column2
        A   B     A   B
Row1    1   1     2   2
Row2    3   3     4   4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...