我有一个数据集,格式很宽
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
我想将我的数据重新调整为long,这样那年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等做这个
选择1
使用
melt
然后unstack
用于var1、var2等。。。输出:
选择2
使用
pivot
然后stack
:输出:
方案3(ayhan的解决方案)
使用
set_index
、stack
和unstack
:输出:
您可以使用“堆叠”和“取消堆叠”的组合,而不是“融化”:
numpy
相关问题 更多 >
编程相关推荐