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
DF を「C」でグループ化し、np.mean (合計、最小、最大) で集計すると、グループ内で列単位の集計が生成されます。
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 ごとの集計が生成されるようです。
In [42]: test_g.aggregate(np.median)
Out[42]:
A B
C
1 7.0 7.0
2 11.5 11.5
(ただし、groupby.median
メソッドを使用すると、列ごとに期待される結果が得られるようです)
次の問題に対処していただければ幸いです。
- そのような結果の理由/メカニズムは何ですか?
- この動作が確認された場合、グループ化の集約に関する推奨される「ベスト プラクティス」にどのような影響がありますか? 他の集計関数はこのように機能しますか?