我有一个巨大的pandas数据框,形状如下:
new_id hour names values
0 0 mark 5
0 0 matt 4
0 0 alex 3
1 0 roger 2
1 0 arthur 7
1 1 alf 8
2 1 ale 6
3 1 peter 5
3 2 tom 2
4 2 andrew 7
我需要重塑它,所以我使用pivot_table()
:
所以它变成了
names ale alex alf andrew arthur mark matt peter roger tom
hour new_id
0 0 0.0 3.0 0.0 0.0 0.0 5.0 4.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0 7.0 0.0 0.0 0.0 2.0 0.0
1 1 0.0 0.0 8.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0
2 3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0
4 0.0 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0
....
顺便说一句,这个小例子不能重现我的问题:在真实的数据集中,当我对它进行透视时,我得到了一些不应该存在的浮点值,因为它们是初始数据集的values
的聚合和,它们都是整数。它们不仅是浮动的,而且与精确结果相差甚远。在
为什么我要得到这些浮点值?有没有更好的方法来得到我想要的?我真的不想自己编写一个函数来在数据帧旋转之前正确地求和所有值,因为这应该正是pivot_table()
所做的。在
存在问题
NaN
s,它将所有值转换为float
s,因此可能的解决方案是添加参数fill_value=0
,如果输入数据是integer
s:^{} 中的默认聚合函数是
mean
,因此输出中至少应有一个浮点值,因此它将所有值转换为float
s因此,如果将聚合函数改为
^{pr2}$sum
一切正常:相关问题 更多 >
编程相关推荐