2016-12-04 4 views
4

パンダのデータフレームをグループ化するときは、いつtransformを使用する必要がありますか?aggregateはいつ使用しますか?どのようにして 彼らは実際にはアプリケーションに関して異なっていますか?あなたはどちらがより重要と考えるか パンダのトランスフォームとアグリゲート

答えて

9

は、データフレームdf

df = pd.DataFrame(dict(A=list('aabb'), B=[1, 2, 3, 4], C=[0, 9, 0, 9])) 

enter image description here


groupby

df.groupby('A').mean() 

enter image description here

aggregater標準的な使用で考えます210

多分、これらの値をグループ全体にブロードキャストし、最初に使ったものと同じインデックスのものを返すことをお勧めします。
使用transform

df.groupby('A').transform('mean') 

enter image description here

df.set_index('A').groupby(level='A').transform('mean') 

enter image description here


aggは、異なる列に対して実行する特定のものがある場合、または同じ列で複数のものを実行する場合に使用されます。

df.groupby('A').agg(['mean', 'std']) 

enter image description here

df.groupby('A').agg(dict(B='sum', C=['mean', 'prod'])) 

enter image description here

+0

途方も驚異的な答え! – mathopt

関連する問題