我有一个名为df
deathtype height deaths
0 AMS 4900 1
1 AMS 5150 1
2 AMS 5300 1
3 Avalanche 5350 14
4 Avalanche 5600 4
5 Avalanche 5700 1
6 Avalanche 5800 17
7 Unexplained 8500 1
8 Unexplained 8560 1
我正试图将数据重塑为以下内容:
deaths 1 4 14 17
deathtype
AMS 4900,5150,5300 0 0 0
Avalanche 5700 5600 5350 5800
Unexplained 8500, 8560 0 0 0
我知道pivot表不能实现这一点,因为aggfunc对重复值使用平均值,这意味着对于1的所有deaths
值,都将记录平均值。一张透视表给了我以下信息
df.pivot_table(index='deathtype', columns='deaths', values='height', fill_value='0')
deaths 1 4 14 17
deathtype
AMS 5116.666667 0 0 0
Avalanche 5700.000000 5600 5350 5800
Unexplained 8530.000000 0 0 0
我在找一些关于如何做这件事的建议。看起来pivot表不是正确的方法。有人能给点建议吗。你知道吗
将
groupby
与aggregate byjoin
一起使用,然后按unstack
重塑形状:细节:
另一个带有^{} 的解决方案:
相关问题 更多 >
编程相关推荐