Python 移动日期时间索引

Python 移动日期时间索引,python,dataframe,Python,Dataframe,我正在尝试更改日期时间索引,以便2018-04-09将提前一天显示为2018-04-08,并且仅更改最后一行,我尝试了几种不同错误的方法,如下所示: df.index[-1] = df.index[-1] + pd.offsets.Day(1) TypeError: Index does not support mutable operations 你能建议一个合适的方法吗 我的df看起来像这样: FinalPosition dt

我正在尝试更改日期时间索引,以便2018-04-09将提前一天显示为2018-04-08,并且仅更改最后一行,我尝试了几种不同错误的方法,如下所示:

df.index[-1] = df.index[-1] + pd.offsets.Day(1)
TypeError: Index does not support mutable operations
你能建议一个合适的方法吗

我的df看起来像这样:

           FinalPosition 
dt                                       
2018-04-03          1.32              
2018-04-04           NaN              
2018-04-05           NaN              
2018-04-06           NaN              
2018-04-09           NaN      
使用
.iloc

Ex:

import pandas as pd

df = pd.DataFrame({"datetime": ["2018-04-09"]})
df["datetime"] = pd.to_datetime(df["datetime"])
print df["datetime"].iloc[-1:] - pd.offsets.Day(1)
0   2018-04-08
Name: datetime, dtype: datetime64[ns]
输出:

import pandas as pd

df = pd.DataFrame({"datetime": ["2018-04-09"]})
df["datetime"] = pd.to_datetime(df["datetime"])
print df["datetime"].iloc[-1:] - pd.offsets.Day(1)
0   2018-04-08
Name: datetime, dtype: datetime64[ns]

如果
DatetimeIndex
的值是唯一的,请使用
rename

df = df.rename({df.index[-1]: df.index[-1] + pd.offsets.Day(1)})
print (df)
            FinalPosition
dt                       
2018-04-03           1.32
2018-04-04            NaN
2018-04-05            NaN
2018-04-06            NaN
2018-04-10            NaN
如果可能,我的工作不是唯一的:


关于timedelta呢?我尝试了df.index[-1]=df.index[-1]-pd.timedelta(days=1),它返回smiliar类型的错误。使用df.index[-1]=df.index[-1]。shift(-1,freq='D'),我返回属性errordf.index.iloc[-1:-pd.offsets.Day(1)。。嗨,Rakesh,我试过了,但是得到了AttributeError:'DatetimeIndex'对象没有属性'iloc'你能发布你的DF吗?好的,刚刚发布了DF你能试试吗
.loc[-1:]-pd.offset.Day(1)
@Jerrick-很高兴能帮上忙!