gpt4 book ai didi

python - 如何从 pandas DataFrame 中获取 "unpivot"特定列?

转载 作者:IT老高 更新时间:2023-10-28 20:40:59 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,例如:

x = DataFrame.from_dict({'farm' : ['A','B','A','B'], 
'fruit':['apple','apple','pear','pear'],
'2014':[10,12,6,8],
'2015':[11,13,7,9]})

即:

   2014  2015 farm  fruit
0 10 11 A apple
1 12 13 B apple
2 6 7 A pear
3 8 9 B pear

我怎样才能把它转换成这个:?

  farm  fruit  value  year
0 A apple 10 2014
1 B apple 12 2014
2 A pear 6 2014
3 B pear 8 2014
4 A apple 11 2015
5 B apple 13 2015
6 A pear 7 2015
7 B pear 9 2015

我已经尝试过 stackunstack 但无法使其工作。

谢谢!

最佳答案

这可以通过 pd.melt() 来完成:

# value_name is 'value' by default, but setting it here to make it clear
pd.melt(x, id_vars=['farm', 'fruit'], var_name='year', value_name='value')

结果:

  farm  fruit  year  value
0 A apple 2014 10
1 B apple 2014 12
2 A pear 2014 6
3 B pear 2014 8
4 A apple 2015 11
5 B apple 2015 13
6 A pear 2015 7
7 B pear 2015 9

[8 rows x 4 columns]

我不确定“melt”作为这种操作的名称有多常见,但这就是它在 R 的 reshape2 包中的名称,这可能是此处名称的灵感来源。

关于python - 如何从 pandas DataFrame 中获取 "unpivot"特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354124/

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