是否可以在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
并且错了。数据开始的正确日期是第二天。那是2014-12-17,他们在2013-01-28结束
有没有办法解决这个问题?
答案 0 :(得分:5)
一些不同的选择:
使用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
但也许更容易(如@Evert通知),你可以简单地添加一天的timedelta:
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
对于较旧的pandas版本,您也可以使用datetime.timedelta(days=1)
(pd.Timedelta
只能从0.15开始使用。)