2017-08-11 12 views
0

私はグループに列によって列BCの平均をしようとしています。私はGROUPBY機能を使ってこれを実現する方法がわからない午前:グループ複数列 - パンダDATAFRAME

import pandas as pd 
pd.DataFrame({'B' : df.groupby(['A'])['B'].mean()}).reset_index() 

私は別のことで、単一の列の平均とグループを検索する方法を見つけ出すことができますので。これは私の現在DATAFRAMEの場合:

A B C 

0 70 12 
0 20 14 
0 46 11 
1 25 9 
2 86 2 
2 14 6 

これは私の期待される成果です。 の全て等値一緒をグループ化し、BCにおける対応する値は、それぞれの列に平均化される:.mean()が最も明白な解決策であるが

A B  C 

0 45.3 12.3 
1 25 9 
2 50 4 

答えて

1

この

df.groupby('A').mean() 
Out[339]: 
      B   C 
A      
0 45.333333 12.333333 
1 25.000000 9.000000 
2 50.000000 4.000000 
0

を試します結果を集約することもできます。

>>> df.groupby('A').agg('mean') 
      B   C 
A      
0 45.333333 12.333333 
1 25.000000 9.000000 
2 50.000000 4.000000 

.aggを使用すると、複数の機能を同時に集約できます。例:

>>> df.groupby('A').agg(['mean', 'std']) 
      B      C   
     mean  std  mean  std 
A           
a 45.333333 25.006666 12.333333 1.527525 
b 25.000000  NaN 9.000000  NaN 
c 50.000000 50.911688 4.000000 2.828427 
関連する問題