我正在使用Python Pandas环境 :D
目前,我有一个类似于以下结构的数据框:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18
我的目标是使数据框看起来像这样:
0 1 2 3 4 5 6 7 8 category amount
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 9 ex9
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 10 ex10
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 11 ex11
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 12 ex12
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 13 ex13
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 14 ex14
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 15 ex15
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 16 ex16
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 17 ex17
ex0 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 18 ex18
基本上,我希望将最后9个列标题和值变成它们自己的行,并在保留前8列和行的同时放入2个新列。我知道这意味着数据会被复制。
我看到stackoverflow上的一些其他答案使用以下代码处理较小的数据框,但对我没有起作用:
df.melt(['Type', 'Class'], var_name='Date', value_name='Value')
(df.set_index(['Type', 'Class'])
.stack()
.rename_axis(['Type', 'Class', 'Date'])
.reset_index(name='Value')
)
非常感谢您的帮助!
谢谢。