Pandas 如何为每笔交易打印聚合值?
我会举例说明 假设我的数据框中有以下3列:Pandas 如何为每笔交易打印聚合值?,pandas,pandas-groupby,aggregation,Pandas,Pandas Groupby,Aggregation,我会举例说明 假设我的数据框中有以下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
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'})]
但只有当该行中的值为最大值时,才会给出正确的值。我很想听听你的想法。
做一个转变:
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试过,但我想不出来。你真棒,谢谢!