我正在一段时间内提取大量数据。它从recvd_dttm 列中提取日期和时间。它需要从一年前开始的所有数据。我想修改它,以便它可以拉一个月或一天,但 pd.DateOffset(months=1) 给出 KeyError:1
错误。如果我将其更改为 days=7,我会收到相同的错误。但在years=1的情况下它工作得很好。这是怎么回事?
df = pd.read_csv('MYDATA.csv')
# filter by countries with at least one medal and sort
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(years=1)
# take slice with final week of data
df = df[(df['recvd_dttm'] >= range_min) &
(df['recvd_dttm'] <= range_max)]
编辑:问题来自代码中的其他地方!
最佳答案
您是否尝试过更明确地了解 pd.DateOffset 的作用?
例如:
range_max = df['recvd_dttm'].max()
range_min = range_max - (df['recvd_dttm']+pd.DateOffset(years=1))
然后替换月份和日期值。
关于python - 从年到月和周的日期偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411137/