如何反向生成日期范围?
我正在处理一个问题,想要创建一个反向的日期范围。
我尝试了这个:
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]