假设我们有一个如下所示的DataFrame:
day_of_week ice_cream count proportion
0 Friday vanilla 638 0.094473
1 Friday chocolate 2048 0.663506
2 Friday strawberry 4088 0.251021
3 Monday vanilla 448 0.079736
4 Monday chocolate 2332 0.691437
5 Monday strawberry 441 0.228828
6 Saturday vanilla 24 0.073350
7 Saturday chocolate 244 0.712930 ... ...
Run Code Online (Sandbox Code Playgroud)
我想要一个新的DataFrame day_of_week
作为索引折叠,所以它看起来像这样:
day_of_week vanilla chocolate strawberry
0 Friday 0.094473 0.663506 0.251021
1 Monday 0.079736 0.691437 0.228828
2 Saturday ... ... ...
Run Code Online (Sandbox Code Playgroud)
我能实现这个最干净的方法是什么?
df.pivot_table
是正确的解决方案:
In[31]: df.pivot_table(values='proportion', index='day_of_week', columns='ice_cream').reset_index()
Out[31]:
ice_cream day_of_week chocolate strawberry vanilla
0 Friday 0.663506 0.251021 0.094473
1 Monday 0.691437 0.228828 0.079736
2 Saturday 0.712930 NaN 0.073350
Run Code Online (Sandbox Code Playgroud)
如果您忽略reset_index()
它,它实际上会返回一个索引数据帧,这可能对您更有用。
values
请注意,当列不是元组的函数时,数据透视表必须执行降维(index, columns)
。如果存在多个(index, columns)
不同的对,value
pivot_table
则默认情况下使用聚合函数将维度降至一mean
。
归档时间: |
|
查看次数: |
2024 次 |
最近记录: |