【问题标题】:Pandas: Get mean of different rows when columns are equalPandas:当列相等时获取不同行的平均值
【发布时间】:2017-11-24 13:41:03
【问题描述】:

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

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

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

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 尝试了几件事,但无法得到正确的结果。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    这是transform我的男人

    df['mean'] = df.groupby(['col1','col2']).col3.transform('mean')
    

    【讨论】:

    • 应该pd.groupbydf.groupby
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2018-11-20
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多