【问题标题】:Groupby and apply a specific function to certain columns and another function to the rest of the df PandasGroupby 并将特定函数应用于某些列,并将另一个函数应用于 df Pandas 的其余部分
【发布时间】:2020-07-28 02:27:01
【问题描述】:

我想将一个带有 +30 列的 df 分组,其中大多数列应用“平均”函数,但对特定列应用“计数”。我正在尝试:

df.groupby('id').agg({'var1':'count',
                       'var2':'count', 
                       'var3':'mean', 
                       'var4':'mean,
                       'var5':'mean'...}) 

每列等等。但我想找到其他更有效的方法。

【问题讨论】:

    标签: pandas group-by aggregate


    【解决方案1】:

    你可以在agg添加if else

    df = df.groupby('id').agg(lambda x : x.count() if x.name in ['var1','var2'] else x.mean())
    

    【讨论】:

    • 如果我需要获取第一个或最后一个值怎么办。 x.first() 不起作用
    • @Guerra 请为此打开一个新问题~
    猜你喜欢
    • 2021-11-20
    • 2019-02-16
    • 2018-11-10
    • 2020-12-09
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多