Pandas:当列相等时获取不同行的平均值

时间:2017-06-21 15:00:04

标签: python pandas dataframe

我试图找到不同行中的值的平均值,按其他列中的相似性进行分组。例如:

In [14]: pd.DataFrame({'col1':[1,2,1,2], 'col2':['A','C','A','B'], 'col3':[1, 5, 6, 9]})
Out[14]: 
   col1 col2  col3
0     1    A     1
1     2    C     5
2     1    A     6
3     2    B     9

我想要的是为col1和col2组合匹配的所有行添加col3方法的列。期望的输出:

Out[14]: 
   col1 col2  col3   mean
0     1    A     1    3.5
1     2    C     5    5
2     1    A     6    3.5
3     2    B     9    9

我已尝试将groupbyapply结合使用,但无法获得正确的结果。

1 个答案:

答案 0 :(得分:6)

它是df['mean'] = df.groupby(['col1','col2']).col3.transform('mean') 我的男人

$this->_data = $row; # This fetches data from a MySQL query