我想要查找几年中几个月之间的日期选择集,例如,我想要(15/01/2018至14/02/2018)和(15/02/2018至14/03/2018)之间的所有日期,以此类推,直到(15/11/2020至14/12/2020)。
我的数据看起来像
Date State code Profit
01-01-2018 1 268
02-01-2018 2 230
... ... ...
... ... ...
... ... ...
31-12-2020 1 740
我想使用与日期15/MM/YYYY和14/MM/YYYY相对应的数据,为此我尝试过
pd.date_range(start='15/01/2018',end='14/01/2018',period=30)
pd.date_range(start='15/01/2018',end='14/01/2018',freq=30D)
这没有帮助,因为它不会生成所需的日期集。
我也试过使用for循环:
for i in range(1,13):
print(pd.date_range(start='15/'+str(i)+'/2018',end='14/'+str(i+1)+'/2018')
但是它给出了错误
ValueError: could not convert string to Timestamp
请指导如何达到预期的结果。
我不确定您想要的输出是什么,但是让我们假设您正在尝试对上述自定义日期范围执行分组。这可以通过在期望的日期上切割数据帧并对间隔进行分组来实现。首先,你需要有一个日期列表,让我们说Date
列中的每一个日期等于14
:df['Date'][lambda x: x.dt.day==14])
。然后将此输入groupby
:
df.groupby(pd.cut(df['Date'], df['Date'][lambda x: x.dt.day==14]))