我试图计算日期之间的天数(累计)(按id列分组),但是,只要满足条件,我就要重置计数器
下面我有以下数据框:
reset_day category date id tdelta
0 N low 2019-09-04 16876 NaN
1 N low 2019-09-05 16876 NaN
2 N low 2019-09-06 16876 NaN
3 N low 2019-09-07 16876 NaN
4 N low 2019-09-08 16876 NaN
... ... ... ... ... ...
5144 Y medium 2021-05-23 17612 0.0
5145 Y high 2021-05-23 23406 0.0
5146 Y high 2021-05-23 21765 0.0
5147 Y medium 2021-05-23 19480 0.0
5148 Y medium 2021-05-23 9066 0.0
在这里,我想在“tdelta”列中输入值,其中的值当前为NaN。此列统计每个id的“日期”列之间的天数
但是,我正在努力根据“reset_day”列重置计数。如果列值为“Y”,则该特定id的计数应再次开始。在这种情况下,您可以在tdelta列中看到值0
我之前曾在类似的数据帧上尝试过以下操作,方法是创建另一列,表示为test t delta:
example = example.sort_values(by="date")
example['date'] = pd.to_datetime(example['date'], format='%Y/%m/%d')
example['test tdelta'] = example.groupby('id')['date'].diff() / np.timedelta64(1, 'D')
example['test tdelta'] = example['test tdelta'].fillna(0)
但是,这只是计算每个id的日期之间的天数,并在不需要重置的情况下填充缺少的值
有没有办法解决这个问题
我认为,根据重置日期创建一个额外的分组列可能是您想要的
相关问题 更多 >
编程相关推荐