python - Pandas 对给定开始和结束日期的时间序列进行重采样

标签 python pandas dataframe time-series

我有一个 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/

相关文章:

python - 字典中的元组

Python 访问受 PKI/SSL 保护的 Web 服务

python - 如何合并列表? ( Pandas 数据框)

python - 识别 python DataFrame 中相等的行...

r - 如何将摘要输出转换为数据框?

java - 如何在一个 jar 中分发包含 jython 代码的 java 包?

python - 使用 np.piecewise 进行均匀分布

python - 在Python pandas中,有没有办法提高数据帧到字典转换的速度?

python - 将 for 循环中的绘图标题设为数据框的列名称

python - Pandas 数据框与系列的列乘法(索引不匹配)