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