如果我要绘制两个时间序列,假设它们都有从左到右的向上正趋势,是否有使用 pandas 来查找两条线相交的位置和频率?
例如:
两个时间序列相交的频率: 1
相交点的坐标是多少:大约 x 轴:1955 y 轴:7
如果我要绘制两个时间序列,假设它们都有从左到右的向上正趋势,是否有使用 pandas 来查找两条线相交的位置和频率?
例如:
两个时间序列相交的频率: 1
相交点的坐标是多少:大约 x 轴:1955 y 轴: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