【问题标题】:Transpose and stacking levels in pandas dataframe熊猫数据框中的转置和堆叠级别
【发布时间】:2019-05-10 21:26:51
【问题描述】:

我遇到了在 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 的剩余两列。

我是否缺少任何堆叠、拆垛或旋转?

【问题讨论】:

    标签: python pandas stack pivot


    【解决方案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
    

    【讨论】:

    • 像魅力一样工作!不知道我怎么会错过两个级别的堆叠?谢啦! :)
    • @sgokhales yw :-)
    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多