gpt4 book ai didi

python - 具有多个值变量的 Pandas Melt

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

我有一个像这样的宽格式数据集

   Index Country     Variable 2000 2001 2002 2003 2004 2005
0 Argentina var1 12 15 18 17 23 29
1 Argentina var2 1 3 2 5 7 5
2 Brazil var1 20 23 25 29 31 32
3 Brazil var2 0 1 2 2 3 3

我想将我的数据 reshape 为 long,以便 year、var1 和 var2 成为新列

  Index Country     year   var1 var2
0 Argentina 2000 12 1
1 Argentina 2001 15 3
2 Argentina 2002 18 2
....
6 Brazil 2000 20 0
7 Brazil 2001 23 1

当我只有一个变量时,我通过编写让我的代码工作

df=(pd.melt(df,id_vars='Country',value_name='Var1', var_name='year'))

我不知道如何为 var1、var2、var3 等执行此操作

最佳答案

您可以结合使用堆栈和取消堆栈来代替熔化:

(df.set_index(['Country', 'Variable'])
.rename_axis(['Year'], axis=1)
.stack()
.unstack('Variable')
.reset_index())

Variable Country Year var1 var2
0 Argentina 2000 12 1
1 Argentina 2001 15 3
2 Argentina 2002 18 2
3 Argentina 2003 17 5
4 Argentina 2004 23 7
5 Argentina 2005 29 5
6 Brazil 2000 20 0
7 Brazil 2001 23 1
8 Brazil 2002 25 2
9 Brazil 2003 29 2
10 Brazil 2004 31 3
11 Brazil 2005 32 3

关于python - 具有多个值变量的 Pandas Melt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45066873/

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