你的问题有点不清楚,如果你能给我们提供一个可以重复的例子来说明你所做的,你的问题可能会得到改善。不过,我想这可能是你想要的?在import pandas as pd
data = {'foo':[5,2,2,4,4],
'bar':[5,2,1,1,1],
'baz':[.2,.3,.4,.5,.6],
'foo1':[2,2,2,1,1],
'foo2':[2,2,1,1,3]}
df = pd.DataFrame(data)
df
>
bar baz foo foo1 foo2
0 5 0.2 5 2 2
1 2 0.3 2 2 2
2 1 0.4 2 2 1
3 1 0.5 4 1 1
4 1 0.6 4 1 3
df.groupby(['foo','bar', 'foo1', 'foo2']).mean()
>
baz
foo bar foo1 foo2
2 1 2 1 0.4
2 2 2 0.3
4 1 1 1 0.5
3 0.6
5 5 2 2 0.2
即使这不是你想要的,你仍然应该阅读Pandas中的groupby,因为这绝对是解决方案的一部分。在
编辑:实际上现在我又读了一遍,这可能会更准确,因为计数:
^{pr2}$
这里我只使用agg传递两个聚合函数,您可以看到这两个函数折叠了相同的行,并将计数提高到2。请注意,foo2中的一个值与第一个示例相比发生了更改,以显示这种工作方式。在