我正在编写代码以获取去年的数据。我想要将早期日期四舍五入,如下所示:如果是2015年7月14日,我需要2014年8月1日至2015年7月14日的数据。
df = pd.read_csv('MyData.csv')
df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])
range_max = datetime.datetime.now()
range_min = range_max - pd.tseries.offsets.DateOffset(years=1)+ pd.tseries.offsets.MonthEnd(1) + pd.tseries.offsets.DateOffset(days=1)
if datetime.datetime.now() == is_month_end:
# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) &
(df['recvd_dttm'] <= range_max)]
我的问题是,当日期为2015年7月31日时,我的代码会跳到下个月末,实际上省略了整个月。
我正在尝试使用for循环来解决这个问题。
如果是月底:
range_min = range_max - pd.tseries.offsets.DateOffset(years=1)
否则:
range_min = range_max - pd.tseries.offsets.DateOffset(years=1)+ pd.tseries.offsets.MonthEnd(1) + pd.tseries.offsets.DateOffset(days=1)
我该如何让Python检查月末?MonthEnd只是一个偏移函数。