两个时间序列的python聚合

标签 python pandas time-series aggregation

我有两个 pandas 时间序列数据帧,我想根据另一个时间序列的时间间隔聚合值。让我举例说明。 第一个时间序列如下:

        date    value
0 2016-03-21       10
1 2016-03-25       10
2 2016-04-10       10
3 2016-05-05       10

第二个是从上述系列中提取的以 10 个日历日为间隔的日期范围。我已经编写了从上述数据中提取此代码的代码。

     date
 0   2016-03-21
 1   2016-03-31
 2   2016-04-10
 3   2016-04-20
 4   2016-04-30

我想写一些代码来得到这个结果数据框:

     date        value
 0   2016-03-21  20
 1   2016-03-31   0
 2   2016-04-10  10
 3   2016-04-20   0
 4   2016-04-30  10

能否建议一种在 python 中不使用循环(最好)来执行此操作的方法?

最佳答案

您可以根据 df2 日期中的 bins 将 df1 中的数据进行 bin,

bins = pd.date_range(df2.date.min(), df2.date.max() + pd.DateOffset(10), freq = '10D')
labels = df2.date
df1.groupby(pd.cut(df1.date, bins = bins, right = False, labels = labels)).value.sum().reset_index()


    date        value
0   2016-03-21  20
1   2016-03-31  0
2   2016-04-10  10
3   2016-04-20  0
4   2016-04-30  10

关于两个时间序列的python聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54934655/

相关文章:

r - 如何 "round"ggplot中的范围线

python - Python 装饰函数中的参数如何工作

python - 图像方向(python+openCV)

python - 如何在列上添加标题

python - 格式化 pandas 表对两列进行排序

python - 使用索引和来自不同时间序列(具有不同索引)的值创建时间序列

python - 在 VS Code 中使用 IPython REPL

python - 添加从两个 pandas dfs 中选择的列

python - 如何检查 Python 中给定时区中是否存在日期时间?

r - 基于R中时间和日期的时间序列平均值