【发布时间】:2015-10-19 09:09:50
【问题描述】:
我想选择过去 4 个月的数据。我想从月初开始,所以如果现在是 7 月 28 日,我想要从 March1-July28 的数据。
目前我使用 DateOffset,我意识到它正在调用 March28-July28 并遗漏了我的很多数据。
df = pd.read_csv('MyData.csv')
df['recvd_dttm'] = pd.to_datetime(df['recvd_dttm'])
#Only retrieve data before now (ignore typos that are future dates)
mask = df['recvd_dttm'] <= datetime.datetime.now()
df = df.loc[mask]
# get first and last datetime for final week of data
range_max = df['recvd_dttm'].max()
range_min = range_max - pd.DateOffset(months=4)
# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) &
(df['recvd_dttm'] <= range_max)]
我查找了其他答案并找到了这个:How do I calculate the date six months from the current date using the datetime Python module? 所以我尝试使用relativedelta(months=-4) 并得到了ValueError: Length mismatch: Expected axis has 1 elements, new values have 3 elements
任何帮助将不胜感激。
【问题讨论】:
标签: python datetime pandas dataframe relativedelta