【发布时间】:2020-08-14 18:47:51
【问题描述】:
我在 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 列标题和值在 2 个新列上成为它们自己的行,同时保持前 8 列和行相同。我知道这意味着数据将被复制。
我在 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')
)
感谢任何和所有帮助! 谢谢
【问题讨论】:
标签: python python-3.x pandas dataframe