熊猫数据框中的转置和堆叠级别

时间:2018-12-09 23:52:49

标签: python pandas stack pivot

我面临在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()

这会按预期扩展YearQuarter,但无法正确对齐AB的其余两列。

我是否缺少任何堆叠,拆栈或枢轴旋转功能?

1 个答案:

答案 0 :(得分:1)

您可以使用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