I have a dataframe like this:
id date value
1 12/01/2016 5
1 25/02/2016 7
1 10/03/2017 13
2 02/04/2016 0
2 06/07/2016 1
2 12/03/2017 6
我希望为每个唯一的'id'
值创建一个名为'max_ever'
的列。
我可以这样做:df['max_ever']=df.groupby(['id'])['value'].transform(max)
这将给我:
id date value max_ever
1 12/01/2016 5 13
1 25/02/2016 7 13
1 10/03/2017 13 13
2 02/04/2016 0 6
2 06/07/2016 1 6
2 12/03/2017 6 6
但我想要添加另一列,名为'max_12_months'
,对于每个唯一的'id'
值,从today()
开始计算。
我可以创建一个新的数据框并过滤日期,然后重复上述操作,但我想尝试在此数据框内进行筛选和转换。
最终的数据框应如下所示:
id date value max_ever max_12_months
1 12/01/2016 13 13 7
1 25/05/2016 7 13 7
1 10/03/2017 5 13 7
2 02/04/2016 6 6 2
2 06/07/2016 1 6 2
2 12/03/2017 2 6 2
感谢任何帮助!