我有一个 pandas 数据框 df1
,其中稀疏日期作为索引和两列。我想生成一个新的数据帧 df2
,其中包含包含 df1
值的给定开始日期和结束日期之间的采样日期(每小时)。
这是df1
:
df1:
col1 col2
2019-01-01 07:12:00 1 0
2019-01-01 10:25:00 0 1
以下是 2019 年
,采样一小时:df2
开始于 00:00:00
并于 12:00:00
结束的内容-01-01
df2:
col1 col2
2019-01-01 00:00:00 0 0
2019-01-01 01:00:00 0 0
2019-01-01 02:00:00 0 0
2019-01-01 03:00:00 0 0
2019-01-01 04:00:00 0 0
2019-01-01 05:00:00 0 0
2019-01-01 06:00:00 0 0
2019-01-01 07:00:00 1 0
2019-01-01 08:00:00 0 0
2019-01-01 09:00:00 0 0
2019-01-01 10:00:00 0 1
2019-01-01 11:00:00 0 0
2019-01-01 12:00:00 0 0
我尝试使用 pandas dataframe resample()
函数,但没有成功指定开始和结束日期。
最佳答案
使用pandas.interpolate
。以下是您应该执行的步骤。
1) 创建要在其中插入新数据的时间戳列表。
2) 将此时间戳列表附加到数据帧索引。这样,数据帧将具有所有必需的索引,但列值
将为NAN
。
3)使用索引对数据框进行排序
4)调用pandas.interpolate
方法来填充之间的值。您可以在此方法中选择不同的参数,例如插值类型。有关更多详细信息,请参阅文档
关于python - Pandas 对给定开始和结束日期的时间序列进行重采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54516447/