我将举例说明。
假设我的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'})]
,但是只有在该行中的最大值为该值时,才给出正确的值。
很想听听您的想法。
答案 0 :(得分: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