我有一个数据帧,例如:
ids year month visit_counts
112 2012 1 5
112 2012 5 25
414 2012 2 10
112 2013 5 10
414 2012 4 35
112 2013 8 16
112 2013 12 23
112 2014 2 20
112 2014 4 28
414 2013 6 15
414 2013 11 30
414 2014 2 24
414 2014 7 17
每一行代表一条记录,记录上有发生的日期。假设,与id 112相关联的第一个发生日期是(2012年和1月(1)),并且不同id的第一个发生日期是不同的。我需要创建新的dataframe,其中对于每个id,我希望在自第一个发生日期起的两年内拥有所有记录。你知道吗
因此,输出数据帧应该如下所示:
ids year month visit_counts
112 2012 1 5
112 2012 5 25
414 2012 2 10
112 2013 5 10
414 2012 4 35
112 2013 8 16
112 2013 12 23
414 2013 6 15
414 2013 11 30
414 2014 2 24
如果有人能提供代码,那会很有帮助的。谢谢您!你知道吗
首先,我们创建一个助手列
time_in_months
,以便能够比较日期。然后使用.groupby
和.transform
查找距离最短日期最多24个月的日期,并筛选这些日期。你知道吗结果
使用
datetime64
。我们创建一个日期,使用groupby
+transform
来获得每个ID的第一个日期,然后我们可以使用一个简单的布尔掩码在2年内只保留行。你知道吗我把多余的几列留着做插图,不过如果你愿意的话,可以把它们删掉。你知道吗
这里有一个方法
相关问题 更多 >
编程相关推荐