5

如果我要绘制两个时间序列,假设它们都有从左到右的向上正趋势,是否有使用 pandas 来查找两条线相交的位置和频率?

例如:

两个时间序列相交的频率: 1

相交点的坐标是多少:大约 x 轴:1955 y 轴:7

在此处输入图像描述

4

1 回答 1

7

这是使用 pandas 的快速尝试。

import pandas as pd
import numpy as np

df = pd.DataFrame({"A":[1,2,3,4,5], "B":[0.5,3,1,1,6]})
print df

这使

   A    B
0  1  0.5
1  2  3.0
2  3  1.0
3  4  1.0
4  5  6.0

然后使用差异

df['difference'] = df.A - df.B

df['cross'] = np.sign(df.difference.shift(1))!=np.sign(df.difference)
np.sum(df.cross)-1

shift(1)您需要 -1 作为将返回的第一行NaN

于 2015-11-14T11:48:40.033 回答