Pandas 熊猫时间序列比较

Pandas 熊猫时间序列比较,pandas,time-series,resampling,Pandas,Time Series,Resampling,我想得到两个时间序列重叠部分之间的平均差值。但是,它们的范围和间隔都不同。解决这两个问题的最好办法是什么 示例数据: Series 1: 2014-08-05 05:03:00 25.194 2014-08-05 05:08:00 25.196 2014-08-05 05:13:00 25.197 2014-08-05 05:18:00 25.199 2014-08-05 05:23:00 25.192

我想得到两个时间序列重叠部分之间的平均差值。但是,它们的范围和间隔都不同。解决这两个问题的最好办法是什么

示例数据:

Series 1:
2014-08-05 05:03:00    25.194      
2014-08-05 05:08:00    25.196      
2014-08-05 05:13:00    25.197      
2014-08-05 05:18:00    25.199      
2014-08-05 05:23:00    25.192      

Series 2:
2014-08-05 05:12:00    25.000000
2014-08-05 05:13:00    25.000000
2014-08-05 05:14:00    25.000000

这就是你要找的吗

首先,您可以同时使用两个系列(因此它们都具有相同的索引。也可以使用
reindex
)将其中一个系列重新索引到另一个系列的索引:

然后可以插值缺失的值(例如基于时间索引的线性插值):

然后减去这两个序列得到差值:

In [91]: s = s1.interpolate(method='time') - s2.interpolate(method='time')

In [92]: s
Out[92]: 
2014-08-05 05:03:00       NaN
2014-08-05 05:08:00       NaN
2014-08-05 05:12:00    0.1968
2014-08-05 05:13:00    0.1970
2014-08-05 05:14:00    0.1974
2014-08-05 05:18:00    0.1990
2014-08-05 05:23:00    0.1920
dtype: float64

In [93]: s.mean()
Out[93]: 0.19643999999999906

你能给出一些例子数据来说明这个问题吗?这个例子的期望输出是什么?序列之间的平均差。也就是说?指数不一样,那么区别是什么呢?它们应该如何对齐?只显示预期的输出更容易。如何使用插值对其中一个序列和另一个序列的索引进行重采样?
In [88]: s1.interpolate(method='time')
Out[88]: 
2014-08-05 05:03:00    25.1940
2014-08-05 05:08:00    25.1960
2014-08-05 05:12:00    25.1968
2014-08-05 05:13:00    25.1970
2014-08-05 05:14:00    25.1974
2014-08-05 05:18:00    25.1990
2014-08-05 05:23:00    25.1920
dtype: float64
In [91]: s = s1.interpolate(method='time') - s2.interpolate(method='time')

In [92]: s
Out[92]: 
2014-08-05 05:03:00       NaN
2014-08-05 05:08:00       NaN
2014-08-05 05:12:00    0.1968
2014-08-05 05:13:00    0.1970
2014-08-05 05:14:00    0.1974
2014-08-05 05:18:00    0.1990
2014-08-05 05:23:00    0.1920
dtype: float64

In [93]: s.mean()
Out[93]: 0.19643999999999906