python - 如何修复您的数据框包含的日期
问题描述
我有一个数据框,我试图从今天(-5)天到下个月底获取数据。
在今天的情况下,这将是;
ix = pd.DatetimeIndex(start=datetime(2020, 6, 05), end=datetime(2020, 7, 31), freq='D')
df.reindex(ix)
如果我想自动化,我可以利用任何功能吗?
我试过了
startdate = pd.to_datetime('today') - pd.DateOffset(days=5)
enddate = pd.to_datetime('today', format) + MonthEnd(2)
ix = pd.DatetimeIndex(start=startdate, end=enddate, freq='D')
df.reindex(ix)
..但现在似乎正在工作。任何帮助表示赞赏!
解决方案
您的代码很接近,我认为主要问题是您构造DatetimeIndex
不正确:它不采用start
orend
参数(请参阅文档)。也同意@MrFuppes 关于format
不必要的观点。
我想你想要pandas.date_range
,它仍然返回一个DatetimeIndex
startdate = pd.to_datetime('today') - pd.DateOffset(days=5)
enddate = pd.to_datetime('today') + pd.tseries.offsets.MonthEnd(2)
ix = pd.date_range(startdate,enddate,freq='D')
这似乎对我有用,可用于重新索引。floor
如果您只想在没有运行代码的特定时间的情况下获取日期,也可以在开始日期和结束日期调用该方法:
ix = pd.date_range(startdate.floor('d'),enddate.floor('d'),freq='D')