提前一天设置熊猫日期时间索引

Uni*_*ted 2 python datetime pandas

是否可以将大熊猫的日期时间索引设置为一天?

我有这个索引

mydata.data.index
Out[7]: <class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-27 22:00:00, ..., 2014-12-16 22:00:00]
Length: 500, Freq: None, Timezone: None
Run Code Online (Sandbox Code Playgroud)

和它的错。数据开始的正确日期是第二天。那是2014-12-17,它们结束于2013-01-28

有没有办法解决这个问题?

jor*_*ris 6

一些不同的选项:

使用shift方法:

In [10]: dti = pd.date_range('2012-01-01', periods=2)

In [11]: dti
Out[11]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-01, 2012-01-02]
Length: 2, Freq: D, Timezone: None

In [13]: dti.shift(1, freq='D')
Out[13]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-02, 2012-01-03]
Length: 2, Freq: D, Timezone: None
Run Code Online (Sandbox Code Playgroud)

但是,也许更简单(如@Evert所示),您只需添加一天的时间增量:

In [14]: dti + pd.Timedelta('1 day')
Out[14]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-02, 2012-01-03]
Length: 2, Freq: None, Timezone: None
Run Code Online (Sandbox Code Playgroud)

对于较旧的熊猫版本,您也可以使用datetime.timedelta(days=1)pd.Timedelta仅从0.15开始可用)。