怎么了。在
我有一个像这样的熊猫数据帧(df):
foo id1 bar id2
0 8.0 1 NULL 1
1 5.0 1 NULL 1
2 3.0 1 NULL 1
3 4.0 1 1 2
4 7.0 1 3 2
5 9.0 1 4 3
6 5.0 1 2 3
7 7.0 1 3 1
...
我想按id1和id2分组,试着得到foo和bar的平均值。在
我的代码:
^{pr2}$我得到的几乎是我所期望的:
foo
id1 id2
1 1 5.750000
2 7.000000
2 1 3.500000
2 1.500000
3 1 6.000000
2 5.333333
“foo”列中的值正是我要查找的平均值(意味着),但我的列“bar”在哪里?在
因此,如果是SQL,我要查找的结果如下: “按id1,id2从数据帧组中选择avg(foo),avg(bar);” (很抱歉,我更像一个sql人,对熊猫还不熟悉,但我现在需要它。)
我也尝试过:
groupedFrame = res.groupby(["id1","id2"])
aggrFrame = groupedFrame.aggregate(numpy.mean)
这给了我完全相同的结果,仍然缺少“bar”列。在
我阅读的网站:
我做错什么了?-谢谢你。在
有一个问题,您的列
bar
不是数字,所以聚合函数会忽略它。在您可以检查省略列的^{} 不是数字:
您可以检查automatic exclusion of nuisance columns。在
解决方案是在将} 和参数}:
^{pr2}$string
值聚合为numeric
之前,如果不可能,请使用^{errors='coerce'
添加{但如果有混合数据-数字与} :
strings
是可能的,请使用^{如前所述,您应该在取平均值之前替换空值
输出
^{pr2}$相关问题 更多 >
编程相关推荐