我很难解决如何重塑此DataFrame的问题。很抱歉这个问题的措词,这个问题似乎有点具体。
我有几个国家的数据,以及一列包含6个重复特征的数据,并记录了该数据的年份。看起来像这样(减去一些功能和列):
Country Feature 2005 2006 2007 2008 2009
0 Afghanistan Age Dependency 99.0 99.5 100.0 100.2 100.1
1 Afghanistan Birth Rate 44.9 43.9 42.8 41.6 40.3
2 Afghanistan Death Rate 10.7 10.4 10.1 9.8 9.5
3 Albania Age Dependency 53.5 52.2 50.9 49.7 48.7
4 Albania Birth Rate 12.3 11.9 11.6 11.5 11.6
5 Albania Death Rate 5.95 6.13 6.32 6.51 6.68
在这种情况下似乎没有任何方法可以使pivot_table()工作,而且我在寻找其他可以使它看起来像我想要的步骤时遇到麻烦:
Age Dependency Birth Rate Death Rate
Afghanistan 2005 99.0 44.9 10.7
2006 99.5 43.9 10.4
2007 100.0 42.8 10.1
2008 100.2 41.6 9.8
2009 100.1 40.3 9.5
Albania 2005 53.5 12.3 5.95
2006 52.2 11.9 6.13
2007 50.9 11.6 6.32
2008 49.7 11.5 6.51
2009 48.7 11.6 6.68
“功能”列的唯一值分别成为一列,而年份列分别成为与国家/地区的multiIndex的一部分。感谢您的任何帮助,谢谢!
编辑:我检查了“重复项”,但看不到这个问题与这个问题有什么相同。我如何将重复值放在要素列中作为唯一列,同时又将年份变成与国家/地区的多元索引?抱歉,如果我什么都没得到。
答案 0 :(得分:0)
df = (df.melt(['Country','Feature'], var_name='year')
.set_index(['Country','year','Feature'])['value']
.unstack())
print (df)
Feature Age Dependency Birth Rate Death Rate
Country year
Afghanistan 2005 99.0 44.9 10.70
2006 99.5 43.9 10.40
2007 100.0 42.8 10.10
2008 100.2 41.6 9.80
2009 100.1 40.3 9.50
Albania 2005 53.5 12.3 5.95
2006 52.2 11.9 6.13
2007 50.9 11.6 6.32
2008 49.7 11.5 6.51
2009 48.7 11.6 6.68