如果我要描绘两个时间序列,让我们说他们都有从左到右的向上积极趋势,无论如何使用熊猫来找到两条线相交的位置以及频率是多少?
例如:
两个时间序列交叉的频率: 1
相交点的坐标是什么:近似x轴:1955 y轴:7
答案 0 :(得分:5)
这是使用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)
将返回NaN