转移日期时间索引

时间:2018-04-09 05:43:29

标签: python dataframe

我试图改变我的日期时间索引,以便2018-04-09提前一天显示为2018-04-08并且只移动最后一行,我尝试了几种不同的错误,如下所示:< / p>

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      

2 个答案:

答案 0 :(得分:0)

使用.iloc

<强>实施例

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]

答案 1 :(得分:0)

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

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

如果可能,对我来说,DatetimeIndex.insert

不是唯一的
df.index = df.index[:-1].insert(len(df), df.index[-1] + pd.offsets.Day(1))