使用 DataFrame(pandas 作为 pd,numpy 作为 np):
test = pd.DataFrame({'A' : [10,11,12,13,15,25,43,70],
'B' : [1,2,3,4,5,6,7,8],
'C' : [1,1,1,1,2,2,2,2]})
In [39]: test
Out[39]:
A B C
0 10 1 1
1 11 2 1
2 12 3 1
3 13 4 1
4 15 5 2
5 25 6 2
6 43 7 2
7 70 8 2
按 'C' 对 DF 进行分组并使用 np.mean 进行聚合(也是 sum、min、max)在组内产生按列聚合:
In [40]: test_g = test.groupby('C')
In [41]: test_g.aggregate(np.mean)
Out[41]:
A B
C
1 11.50 2.5
2 38.25 6.5
但是,看起来使用 np.median 进行聚合会在组内产生 DataFrame-wise 聚合:
In [42]: test_g.aggregate(np.median)
Out[42]:
A B
C
1 7.0 7.0
2 11.5 11.5
(虽然使用groupby.median
方法似乎会产生预期的列式结果)
我将不胜感激解决以下问题:
- 这种结果的原因/机制是什么?
- 如果此行为得到确认,它将如何影响聚合分组的推荐“最佳实践”?其他聚合函数可以这样工作吗?