我的数据框看起来像这样:
measure | location | cause | val
Deaths | Alabama |sickness1 | 0.045
Deaths | Alabama |sickness2 | 0.001
...
Prevalence| Alabama |sickness1 | 0.05
Prevalence| Alabama |sickness2 | 0.003
...
因此,基本上有两种可能的措施(死亡和流行),多种疾病以及所有51个美国州和每种州的价值。
我想做的是将每个度量(死亡和流行)转换为自己的列,val
列是它们各自的行值:
location | cause | Deaths | Prevalence
Alabama |sickness1 | 0.045 | 0.05
Alabama |sickness2 | 0.001 | 0.003
...
有(简单)方法吗? 不幸的是,我找不到可以帮助我的现有问题,但这可能是因为我不确定如何寻找它。因此,如果已经存在类似问题的问题(和答案),那么快速指向其中一个就会很棒!
答案 0 :(得分:0)
您要找的是pivoting
,但是常规DataFrame.pivot
不会这样做,因为您需要使用多列作为唯一索引:location
和{{1 }}
cause
其中pd.pivot_table(df, columns=['measure'], values='val', index=['cause', 'location'],
aggfunc=max)
是您希望如何处理数据聚合(aggfunc
,max
,mean
...),如果每行只有一个值,则不会#39; t。。
sum