【问题标题】:How do I get an aggregated value printed for each transaction? [duplicate]如何为每笔交易打印汇总值? [复制]
【发布时间】:2020-10-23 11:54:49
【问题描述】:

我会举例说明。

假设我的 DataFrame 中有以下 3 列:

MONTH-DAY-VALUE
Jan - 2- 2
Jan - 15 - 6
Feb - 5 - 2
Feb - 19 - 1
Feb - 23 - 5

假设我想要最大值,那么我想要得到的 df 是:

MONTH-DAY-VALUE-NEWCOLUMN
Jan - 2 - 2 - 6
Jan - 15 - 6 - 6
Feb - 5 - 2 - 5
Feb - 19 - 1 - 5
Feb - 23 - 5 - 5

而不是:

Jan - 6
Feb - 5

我试过了:

cal['NEWCOLUMN']=cal['Value'].loc[cal['Value']==cal.groupby('Month').agg({'VALUE':'max'})]

但这仅在该值是该行中的最大值时才给出正确的值。
很想听听您的想法。

【问题讨论】:

    标签: pandas pandas-groupby aggregation


    【解决方案1】:

    做一个变换:

    df['newcol'] = df.groupby('MONTH')['VALUE'].transform('max')
    

    输出:

      MONTH  DAY  VALUE  newcol
    0   Jan    2      2       6
    1   Jan   15      6       6
    2   Feb    5      2       5
    3   Feb   19      1       5
    4   Feb   23      5       5
    

    【讨论】:

    • 其实用 transform 试过了,但我想不通。你太棒了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2014-03-29
    • 2016-09-11
    • 2021-09-29
    相关资源
    最近更新 更多