Python 按单个列对多个列进行分组--数据帧

Python 按单个列对多个列进行分组--数据帧,python,python-2.7,pandas,Python,Python 2.7,Pandas,我试图将B和C列的平均值按A列分组。我不确定如何使用groupby函数完成此操作: import pandas as pd pd.DataFrame({'B' : df.groupby(['A'])['B'].mean()}).reset_index() 因为我只能算出如何找到平均值,并将一列按另一列分组。如果这是我的当前数据帧: 这是我预期的结果。将A的所有相似值分组在一起,B和C中的对应值在各自的列中取平均值: A B C 0 45.3 12.3 1 25 9 2

我试图将BC列的平均值按A列分组。我不确定如何使用groupby函数完成此操作:

import pandas as pd
pd.DataFrame({'B' : df.groupby(['A'])['B'].mean()}).reset_index()
因为我只能算出如何找到平均值,并将一列按另一列分组。如果这是我的当前数据帧:

这是我预期的结果。将A的所有相似值分组在一起,BC中的对应值在各自的列中取平均值:

A  B     C

0  45.3  12.3
1  25    9
2  50    4
试试这个

df.groupby('A').mean()
Out[339]: 
           B          C
A                      
0  45.333333  12.333333
1  25.000000   9.000000
2  50.000000   4.000000
虽然
.mean()
是最明显的解决方案,但您也可以聚合结果:

>>> df.groupby('A').agg('mean')
           B          C
A                      
0  45.333333  12.333333
1  25.000000   9.000000
2  50.000000   4.000000
使用,您可以同时聚合多个函数,例如:

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