我有一个数据框,如下所示,
df =
index value
2014-05-21 10:00:00 13.0
2014-05-21 10:30:00 8.0
2014-05-21 11:00:00 9.0
2014-05-21 11:30:00 7.0
2014-05-21 12:00:00 2.0
....
如何在开头添加一个新值2,它会是
df =
index value
2014-05-21 09:30:00 2.0 <- new value with new index automatically
2014-05-21 10:00:00 13.0 calculated ( 10 o'clock - 30min(timestep))
2014-05-21 10:30:00 8.0
2014-05-21 11:00:00 9.0
2014-05-21 11:30:00 7.0
2014-05-21 12:00:00 2.0
和
type(df.index) = pandas.core.indexes.datetimes.DatetimeIndex
我想在第一个索引中添加值,并且日期时间将按时间步长自动计算(在本例中为 30 分钟),有没有更好的方法可以做到这一点?
提前致谢!
最佳答案
选项 1
df.loc[df.index[0] - pd.offsets.Minute(30), 'value'] = 2
df = df.sort_index()
df
value
index
2014-05-21 09:30:00 2.0
2014-05-21 10:00:00 13.0
2014-05-21 10:30:00 8.0
2014-05-21 11:00:00 9.0
2014-05-21 11:30:00 7.0
2014-05-21 12:00:00 2.0
选项 2
设置索引的频率,以便可以自然递减。
这是来自@root HERE的回答
from pandas.tseries.frequencies import to_offset
df.index.freq = to_offset(df.index.inferred_freq)
df.combine_first(pd.DataFrame(dict(value=[2]), [df.index[0] - 1]))
value
index
2014-05-21 09:30:00 2.0
2014-05-21 10:00:00 13.0
2014-05-21 10:30:00 8.0
2014-05-21 11:00:00 9.0
2014-05-21 11:30:00 7.0
2014-05-21 12:00:00 2.0
关于python - 在数据帧python中按时间步长在开头添加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49806757/