首页 > 解决方案 > 如何修复您的数据框包含的日期

问题描述

我有一个数据框,我试图从今天(-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)

..但现在似乎正在工作。任何帮助表示赞赏!

标签: pythonpandasdatetimeindexingreindex

解决方案


您的代码很接近,我认为主要问题是您构造DatetimeIndex不正确:它不采用startorend参数(请参阅文档)。也同意@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')

推荐阅读