gpt4 book ai didi

python - reshape Pandas DataFrame : switch columns to indices and repeated values as columns

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:52 26 4
gpt4 key购买 nike

我花了很长时间才弄清楚如何 reshape 这个 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

“特征”列的唯一值均成为一列,年份列均成为国家/地区多重索引的一部分。感谢任何帮助,谢谢!

编辑:我检查了“重复”,但我不明白这个问题与这个问题有何相同。如何将重复值作为唯一列放置在特征列中,同时移动年份以成为国家/地区的多重索引?抱歉,如果我没有得到什么。

最佳答案

使用melt reshape set_indexunstack :

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

关于python - reshape Pandas DataFrame : switch columns to indices and repeated values as columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53300559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com