如何修复数据框包含的日期

How to fix what dates your dataframe includes

我有一个数据框,我试图从中获取从今天 (-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 不正确:它没有使用 startend 参数(请参阅 docs).也同意@MrFuppes 关于 format 是不必要的。

我想你想要pandas.date_range,这还是returns一个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')