【问题标题】:Transform vs. aggregate in PandasPandas 中的转换与聚合
【发布时间】:2017-04-18 21:11:01
【问题描述】:

在对 Pandas DataFrame 进行分组时,什么时候应该使用transform,什么时候应该使用aggregate?怎么做 它们在实践中的应用不同,你是哪一个 考虑更重要?

【问题讨论】:

    标签: python pandas pandas-groupby aggregation


    【解决方案1】:

    考虑数据框df

    df = pd.DataFrame(dict(A=list('aabb'), B=[1, 2, 3, 4], C=[0, 9, 0, 9]))
    


    groupby 是标准使用聚合器

    df.groupby('A').mean()
    


    也许您希望这些值在整个组中广播并返回与您开始时具有相同索引的内容。
    使用transform

    df.groupby('A').transform('mean')
    

    df.set_index('A').groupby(level='A').transform('mean')
    


    agg 用于当您想要为不同的列运行特定的事情或在同一列上运行多个事情时。

    df.groupby('A').agg(['mean', 'std'])
    

    df.groupby('A').agg(dict(B='sum', C=['mean', 'prod']))
    

    【讨论】:

    • 非常棒的答案!
    • 通过使用 agg 如何返回原始数据框 df 分解聚合列?
    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 2019-09-06
    • 2019-01-17
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多