如何反向生成日期范围?

12 投票
3 回答
14184 浏览
提问于 2025-04-18 05:04

我正在处理一个问题,想要创建一个反向的日期范围。
我尝试了这个:

import pandas as pd
dates = pd.date_range(end='2/08/2014', periods=104, freq='W-Sat', closed = None)

但我总是得到从晚到早的结果,像这样:

<class 'pandas.tseries.index.DatetimeIndex'>
[2012-02-18, ..., 2014-02-08]
Length: 104, Freq: W-SAT, Timezone: None

我想要的范围是从'2014-02-08'开始。

谢谢!

解决方案:

感谢你提到内置的反向功能,你需要回去创建一个DatetimeIndex,这样才能在时间序列中使用,像这样:

dTmp = pd.date_range(end='2/08/2014', periods=104, freq='W-Sat', closed = None)
dates = [d for d in reversed(dTmp)]`

3 个回答

1

reversed(dates) 替代 dates.reverse()

9

你可以通过指定一个负频率来直接实现这个功能:

import pandas as pd
freq = '-1W-Sat'
dates = pd.date_range(start='2/08/2014', periods=104, freq=freq, closed = None)

注意这里使用了 start 这个参数。

25

你可以直接用一种叫做“花式索引”的方法来获取这个:

pandas.date_range(end='2/08/2014', periods=104, freq='W-Sat')[::-1]

撰写回答