【发布时间】:2023-03-08 20:33:01
【问题描述】:
我有一个看起来像这样的数据框(通常它有很多用户):
userid | activityday
222 2015-01-09 12:00
222 2015-01-10 12:00
222 2015-01-11 12:00
222 2015-01-13 12:00
222 2015-01-14 12:00
222 2015-01-15 12:00
222 2015-01-17 12:00
222 2015-01-18 12:00
222 2015-01-19 12:00
222 2015-01-20 12:00
222 2015-01-20 12:00
我想获取到给定日期之前的连续活动天数和非活动天数。例如,如果日期是 2015-01-23,那么:
userid | days_active_jb | days_inactive_jb | ttl_days_active | ttl_days_inactive
222 | 3 | 2 | 10 | 2
或者,如果给定日期是2015-01-15,那么:
userid | days_active_jb | days_inactive_jb | ttl_days_active | ttl_days_inactive
222 | 2 | 0 | 5 | 1
我有大约 300.000 行要处理以获得这个最终数据帧。我想知道什么是实现这一目标的有效方法。有什么想法吗?
下面是每列的解释:
days_active_jb :学生在给定日期之前连续进行活动的天数。
days_inactive_jb : 学生在给定日期之前连续没有活动的天数。
ttl_days_active : 学生在给定日期之前的任何一天进行活动的天数。
ttl_days_inactive : 学生在给定日期之前没有活动的天数。
【问题讨论】:
-
days_active_jb 和 days_inactive_jb 是如何定义的?如果 days_inactive_jb 是 1 天以上的间隔数,那么第二个示例是否应该为 days_inactive_jb 设置 1?
-
@Allen 感谢您的回答。我提供了解释。我会尽快尝试您的解决方案并通知您。