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