Python 按单个列对多个列进行分组--数据帧
我试图将B和C列的平均值按A列分组。我不确定如何使用groupby函数完成此操作: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
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 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