我试图改变我的日期时间索引,以便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
答案 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))