假设我有一个像这样的数据框:
我想按
对于每个组,我希望添加一行新的数据,日期为现在的一年后。 只有当此行晚于该组中的最后日期时,才应将此行添加到该组中。 此行的值应与该组中的最后一行相同。
最终表格应如下所示:
date id val
0 2017-01-01 1 10
1 2019-01-01 1 20
2 2017-01-01 2 50
我想按
id
对这个数据集进行分组。对于每个组,我希望添加一行新的数据,日期为现在的一年后。 只有当此行晚于该组中的最后日期时,才应将此行添加到该组中。 此行的值应与该组中的最后一行相同。
最终表格应如下所示:
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