2017-08-11 55 views
0

我被一个柱试图组列ç的平均值。我不确定如何使用GROUPBY功能来实现:集团多列由单柱 - 熊猫据帧

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

因为我只能找出如何找到另一台平均和组一列。如果这是我的当前数据帧

A B C 

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

这是我预期结果。分组的所有像值加在一起,在Ç对应值被平均在它们各自的列:

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

虽然.mean()是最明显的解决方案,您也可以汇总结果:

>>> 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