【发布时间】:2021-08-31 20:25:45
【问题描述】:
我有一个如下的数据框:
df = pd.DataFrame({'Id': ['abs1', 'abs2', 'abs3', 'plo2', '201805', '201806', '202011', 'pctx1'],
'Date': ['2021-06-15', '2021-06-13', '2021-06-07', '2021-05-30',
'2021-05-12', '2021-04-28', '2021-04-15', '2021-02-01']})
我希望将Date列分成几组在一个新列中,称为Date_Bin,规则是:从今天开始,如果Date中的值小于7天,那么新列中的值将是'last 7 days',如果该值小于 14 天且大于 7 天,则该值为“7 到 14 天”,如果该值小于 30 天且大于 14 天,则该值为'14 到 30 天',30 到 60 天、60 到 90 天和 90 天以上的逻辑相同。 理想的输出是这样的:
Id Date Date_Bin
0 abs1 2021-06-15 last 7 days
1 abs2 2021-06-13 last 7 days
2 abs3 2021-06-07 7 to 14 days
3 plo2 2021-05-30 14 to 30 days
4 201805 2021-05-10 30 to 60 days
5 201806 2021-04-28 30 to 60 days
6 202011 2021-04-15 60 to 90 days
7 pctx1 2021-02-01 more than 90 days
正如您所看到的输出,这些是我需要的数据的唯一组/箱。试了好几种方法都不行,如果有大神帮忙,不胜感激。
【问题讨论】:
标签: pandas datetime pandas-groupby pandas-timeindex