Транспонирование и укладка уровней в панде - PullRequest
0 голосов
/ 10 декабря 2018

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

Вот мой начальный набор данных:

1990                      1991     
Q1     Q2     Q3     Q4        Q1     Q2     Q3     Q4
A | B  A | B  A | B  A | B     A | B  A | B  A | B  A | B

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

Вот мойожидаемый результат:

   Year   Quarter  A   B
   1990   Q1       a1  b1
          Q2       a2  b2
   ....   ...      ... ...
   1991 ..................

Ниже приведен мой код, который я пробовал, но он не работает (вывод не такой, как ожидалось).

df.transpose().stack(level=0).to_frame().reset_index()

Это расширяет Year, Quarter, как ожидалось, но не в состоянии правильно выровнять оставшиеся два столбца A и B.

Я пропустил какое-либо суммирование,Разблокировка или поворот?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете проверить с помощью stack с двумя уровнями

df.stack([0,1]).reset_index()

Ввод данных

df=pd.DataFrame(columns=idx,index=[1]).fillna(0)
df.stack([0,1])
           a  b
1 1900 q1  0  0
       q2  0  0
       q3  0  0
       q4  0  0
  1991 q1  0  0
       q2  0  0
       q3  0  0
       q4  0  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...