我有这样一个数据帧:
我想创建一个新列outcome
,它接受一个值yes
,因为id
在过去25天内没有任何条目。
例如,这是预期输出
在上面的示例中,我们可以假设开始日期为2020-12-15
。因此,我们对所有id
的比较都是在这个日期之后开始的。
对于id 1
,从2020-12-15
开始,除了2021-01-31
之外,它在last 25 days
中有条目。发生在2021-01-31
之前的条目位于2020-12-31
上,在本例中> 25 days
。因此,outcome
变量取值no
。对于其余的行,它是yes
,因为对于每一个日期,都有一个前一个条目在25天的差异范围内
我对如何为此编写算法感到非常困惑
我必须groupby
{order by
{timestamp
上做一些事情来创建outcome
列
我对此感到非常困惑,任何帮助都将不胜感激
提前谢谢
在下列情况下适用条件:
1.一组连续天数之间的差值小于15 或 2.组中的第一项等于是。不符合任何条件的任何其他元素等于
因为您的计算需要排序,所以我们可以避免分组。排序,获取行差,并使用跨组的值
where
到NaN
(即每个ID的最早行)。因为您希望第一个差异是相对于'2020-12-15'
的,所以我们可以使用fillna
查找与该日期的差异,并使用np.where
根据您的条件为字符串赋值相关问题 更多 >
编程相关推荐