Pandas 数据框使用列作为行(融化)

2023-12-25

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

DF 我有:

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 |

DF 我想要:

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

我尝试了多种不同的熔化配置,但不知何故我无法解决这个问题。


IIUC melt + 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()
series name   country  year  CO2 emissions  fertility rate
0            pakistan  2015            NaN             1.0
1            pakistan  2016            NaN             2.0
2            pakistan  2017            NaN             1.0
3               saudi  2015            5.0             1.0
4               saudi  2016           10.0             2.0
5               saudi  2017           15.0             2.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 数据框使用列作为行(融化) 的相关文章

随机推荐