【发布时间】:2021-03-14 01:01:54
【问题描述】:
假设我有一个列表列表,其中每个嵌套列表都有两个值:一个范围的开始日期和一个范围的结束日期。所以是这样的:
ranges_list = [
['2020-03-12', '2020-06-12'],
['2020-03-13', '2020-06-13'],
['2020-03-14', '2020-06-14']
]
这代表 3 个范围:
- 2020 年 3 月 12 日 - 2020 年 6 月 12 日
- 2020 年 3 月 13 日 - 2020 年 6 月 13 日
- 2020 年 3 月 14 日 - 2020 年 6 月 14 日
假设我还有一些数据框 d 有多个列,其中一个是名为 'occurence_date' 的列,其中包含日期时间。
假设数据框 d 看起来像:
ID LinkID PC occurence_date
10R46 R*1005 8017 2020-03-12
10R46 R*10335 5019 2020-04-15
100R91 R*1005 8017 2020-04-15
10R91 R*243 8870 2020-06-14
我想在ranges_list 中指定的范围内使用occurence_date 列对数据框d 进行分组
比如:
grouped = d.groupby('occurence_date', ranges=ranges_list)
显然,这个 groupby 代码不正确,但有助于实现我想做的事情。
最后,分组对象应该有 3 个不同的组,如下所示:
group: ('2020-03-12', '2020-06-12')
ID LinkID PC occurence_date
10R46 R*1005 8017 2020-03-12
10R46 R*10335 5019 2020-04-15
100R91 R*1005 8017 2020-04-15
group: ('2020-03-13', '2020-06-13')
ID LinkID PC occurence_date
10R46 R*10335 5019 2020-04-15
100R91 R*1005 8017 2020-04-15
group: ('2020-03-14', '2020-06-14')
ID LinkID PC occurence_date
10R46 R*10335 5019 2020-04-15
100R91 R*1005 8017 2020-04-15
10R91 R*243 8870 2020-06-14
我怎样才能做到这一点?
【问题讨论】:
标签: python pandas group-by pandas-groupby period