比方說,我有一個數據幀是這樣的:熊貓:添加行到每一組視病情
date id val
0 2017-01-01 1 10
1 2019-01-01 1 20
2 2017-01-01 2 50
我想這組數據集由id
。
對於每個組,我想添加一個新的行,日期從現在開始爲1年。如果它晚於組中的最後一個日期,則只應添加此行。行的val應該與組中的最後一行相同。
決賽桌應該是這樣的:
date id val
0 2017-01-01 1 10
1 2019-01-01 1 20
2 2017-01-01 2 50
3 2018-09-25 2 50 <-- new row
當前的代碼如下。我可以得到一個掩碼,顯示哪些組需要添加一行,但不知道下一步該怎麼做。
>>> df = pd.DataFrame(data={'d': [datetime.date(2017, 1, 1), datetime.date(2019,1,1), datetime.date(2017,1,1)], 'id': [1,1,2], 'val': [10,20,50]})
>>> df = df.sort_values(by='d')
>>> future_date = (pd.datetime.now().date() + pd.DateOffset(years=1)).date()
>>> maxd = df.groupby('id')['d'].max()
>>> maxd < future_date
id
1 False
2 True
Name: d, dtype: bool