我如何获得为每笔交易打印的汇总值?
How do I get an aggregated value printed for each transaction?
我会举例说明。
假设我的 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'})]
但是如果值是该行中的最大值,这只会给出正确的值。
很想听听你的想法。
进行转换:
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
我会举例说明。
假设我的 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'})]
但是如果值是该行中的最大值,这只会给出正确的值。
很想听听你的想法。
进行转换:
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