如何反向执行date_range?

时间:2014-05-02 00:42:48

标签: python pandas time-series dataframe

我正在处理如何反向创建日期范围的问题。 我正在尝试这个:

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)]`

5 个答案:

答案 0 :(得分:10)

使用可以通过花哨的索引直接获得:

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

答案 1 :(得分:1)

使用reversed(dates)代替dates.reverse()

答案 2 :(得分:1)

您可以通过指定负频率来本地执行此操作:

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

请注意,使用了start参数。

答案 3 :(得分:0)

此代码对我有用:

from pandas import 
dates_reversed = DatetimeIndex(reversed(dates_original))

答案 4 :(得分:-1)

似乎你得到一个列表类型作为date_range()函数的返回值。您可以使用列表中的内置reverse()函数来反转列表的元素。只需将.reverse()添加到日期。

import pandas as pd

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