猿问

pandas 数据帧中的转置和堆叠级别

我在 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。


我是否遗漏了任何堆叠、拆垛或旋转?


青春有我
浏览 158回答 1
1回答

弑天下

您可以检查stack两个级别df.stack([0,1]).reset_index()数据输入df=pd.DataFrame(columns=idx,index=[1]).fillna(0)df.stack([0,1])           a  b1 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
随时随地看视频慕课网APP

相关分类

Python
我要回答