3 回答
TA贡献1875条经验 获得超3个赞
使用groupby,cumcount以及unstack用T:
df.set_index(['Country',df.groupby('Country').cumcount()])['Value'].unstack().T
输出:
Country Canada England France Germany Mexico Spain United States
0 535.0 666.0 545.0 522.0 581.0 525.0 394.0
1 917.0 130.0 76.0 882.0 563.0 NaN 936.0
2 344.0 376.0 960.0 442.0 247.0 NaN 819.0
3 760.0 272.0 NaN 604.0 976.0 NaN 975.0
4 745.0 199.0 NaN 512.0 NaN NaN 123.0
5 654.0 102.0 NaN 114.0 NaN NaN 690.0
6 NaN 570.0 NaN 318.0 NaN NaN 568.0
7 NaN 807.0 NaN 523.0 NaN NaN 385.0
8 NaN 18.0 NaN 890.0 NaN NaN 451.0
9 NaN 26.0 NaN 635.0 NaN NaN 282.0
10 NaN 871.0 NaN NaN NaN NaN 771.0
11 NaN 122.0 NaN NaN NaN NaN 505.0
12 NaN 0.0 NaN NaN NaN NaN NaN
13 NaN 578.0 NaN NaN NaN NaN NaN
TA贡献1777条经验 获得超3个赞
pd.pivot 带你到一半,这里的问题是你的索引没有信息所以你的非 NaN 值不在 df 的顶部
df.pivot(index=None, columns='Country', values = 'Value')
Country Canada England France ... Mexico Spain United States
0 NaN NaN NaN ... NaN NaN 992.0
1 NaN NaN NaN ... NaN NaN 814.0
2 NaN NaN NaN ... NaN NaN 489.0
3 NaN NaN NaN ... NaN NaN 943.0
4 NaN NaN NaN ... NaN NaN 574.0
5 NaN NaN NaN ... NaN NaN 428.0
6 NaN NaN NaN ... NaN NaN 907.0
7 NaN NaN NaN ... NaN NaN 899.0
8 NaN NaN NaN ... NaN NaN 379.0
9 NaN NaN NaN ... NaN NaN 130.0
添加回答
举报