Python 3.x 如何根据熊猫的年数重塑数据?

Python 3.x 如何根据熊猫的年数重塑数据?,python-3.x,pandas,Python 3.x,Pandas,我的CSV数据如下所示: 在使用python时,我想将其转换为如下内容: 关键是每年都有相同的列变量,其中年份是索引 我已经尝试了许多不同形式的转换数据帧,例如透视表、熔化、堆栈/取消堆栈等,但都没有成功。在此方面的任何帮助都将不胜感激 IIUC您需要: df = df.stack(0) 样本: mux = pd.MultiIndex.from_product([[2003,2004], ['C', 'D']]) mux1 = pd.MultiIndex.from_product([[1,

我的CSV数据如下所示:

在使用python时,我想将其转换为如下内容:

关键是每年都有相同的列变量,其中年份是索引

我已经尝试了许多不同形式的转换
数据帧
,例如透视表、熔化、堆栈/取消堆栈等,但都没有成功。在此方面的任何帮助都将不胜感激

IIUC您需要:

df = df.stack(0)
样本:

mux = pd.MultiIndex.from_product([[2003,2004], ['C', 'D']])
mux1 = pd.MultiIndex.from_product([[1,2], ['A', 'B']], names=('State1','State2'))

np.random.seed(100)
df = pd.DataFrame(np.random.random((4,4)), columns=mux, index = mux1)
print (df)
                   2003                2004          
                      C         D         C         D
State1 State2                                        
1      A       0.543405  0.278369  0.424518  0.844776
       B       0.004719  0.121569  0.670749  0.825853
2      A       0.136707  0.575093  0.891322  0.209202
       B       0.185328  0.108377  0.219697  0.978624

print (df.stack(0).swaplevel(1,2).reset_index())
   State1  level_1 State2         C         D
0       1     2003      A  0.543405  0.278369
1       1     2004      A  0.424518  0.844776
2       1     2003      B  0.004719  0.121569
3       1     2004      B  0.670749  0.825853
4       2     2003      A  0.136707  0.575093
5       2     2004      A  0.891322  0.209202
6       2     2003      B  0.185328  0.108377
7       2     2004      B  0.219697  0.978624

什么是
df.info()
?确切位置在哪里?如果解决方案有效,则不必这样做。;)非常感谢!那很有帮助