Pandas dataframe使用列作为行(melt)

2024-05-23 19:27:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道,这个问题已经被问了好几次了,但我并没有设法根据已经提出的问题来构建我的解决方案。在

我有:

id| country  |  series name   | 2015 | 2016 | 2017
--+----------+----------------+------+------+------
0 | saudi    | fertility rate | 1    | 2    | 2   |    
1 | saudi    | CO2 emissions  | 5    | 10   | 15  | 
2 | pakistan | fertility rate | 1    | 2    | 1   |
3 | pakistan | CO2 emissions  | NaN  | NaN  | NaN |

我想要的数据:

^{pr2}$

我尝试了多种不同的熔融配置,但不知怎么的,我无法解决这个问题。在


Tags: 数据nameidratenan解决方案countryseries
1条回答
网友
1楼 · 发布于 2024-05-23 19:27:06

IIUCmelt+pivot_table。这个答案假设id是您的索引。如果不是,就把它扔了,因为计算中不需要它。在


d = df.melt(id_vars=["country", "series name"], var_name="year")

d.pivot_table(
    index=["country", "year"], columns="series name", values="value"
).reset_index()

^{pr2}$

相关问题 更多 >