gpt4 book ai didi

Pandas 时间序列比较

转载 作者:行者123 更新时间:2023-12-03 21:31:09 25 4
gpt4 key购买 nike

我想获得两个时间序列重叠部分之间的平均差异。但是,它们的范围和间隔是不同的。解决这两个问题的最佳方法是什么?

示例数据:

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

最佳答案

这是你想要的?

首先你可以align两个系列(因此它们都具有相同的索引。也可以仅使用 reindex 将两者之一重新索引到另一个的索引):

In [85]: s1, s2 = s1.align(s2)

In [86]: s1
Out[86]:
2014-08-05 05:03:00 25.194
2014-08-05 05:08:00 25.196
2014-08-05 05:12:00 NaN
2014-08-05 05:13:00 25.197
2014-08-05 05:14:00 NaN
2014-08-05 05:18:00 25.199
2014-08-05 05:23:00 25.192
dtype: float64

In [87]: s2
Out[87]:
2014-08-05 05:03:00 NaN
2014-08-05 05:08:00 NaN
2014-08-05 05:12:00 25
2014-08-05 05:13:00 25
2014-08-05 05:14:00 25
2014-08-05 05:18:00 NaN
2014-08-05 05:23:00 NaN
dtype: float64

然后您可以插入缺失值(例如,使用基于时间索引的线性插值):
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

关于 Pandas 时间序列比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com