Python Pandas:如何在两个日期时间之间添加行



我有Pandas DataFrame,我正试图找出如何在我的DF中的日期时间值之间插入值。理想情况下,我应该每小时有一行,"价格"只是由之前的价格填充。

如果我有一个这样的表:

day_hour                price
---------------------------------
2020-01-01 05:00:00     12.083333
2020-01-01 09:00:00     11.047170
2020-01-01 10:00:00     11.678125
2020-01-01 11:00:00     11.920000
2020-01-01 12:00:00     12.012500

我怎么把它变成这个?:

day_hour                price
---------------------------------
2020-01-01 05:00:00     12.083333
2020-01-01 06:00:00     12.083333
2020-01-01 07:00:00     12.083333
2020-01-01 08:00:00     12.083333
2020-01-01 09:00:00     11.047170
2020-01-01 10:00:00     11.678125
2020-01-01 11:00:00     11.920000
2020-01-01 12:00:00     12.012500

我们可以set_index然后resample.ffill到每小时(1H)和reset_index来恢复列:

df = df.set_index('day_hour').resample('1H').ffill().reset_index()

df:

day_hour      price
0 2020-01-01 05:00:00  12.083333
1 2020-01-01 06:00:00  12.083333
2 2020-01-01 07:00:00  12.083333
3 2020-01-01 08:00:00  12.083333
4 2020-01-01 09:00:00  11.047170
5 2020-01-01 10:00:00  11.678125
6 2020-01-01 11:00:00  11.920000
7 2020-01-01 12:00:00  12.012500

设置:

import pandas as pd
df = pd.DataFrame({
'day_hour': pd.to_datetime(['2020-01-01 05:00:00', '2020-01-01 09:00:00',
'2020-01-01 10:00:00', '2020-01-01 11:00:00',
'2020-01-01 12:00:00']),
'price': [12.083333, 11.04717, 11.678125, 11.92, 12.0125]
})

相关内容

  • 没有找到相关文章

最新更新