所以我有两个pandas时间序列,两者的索引都是时间戳。问题是 - 并非所有时间戳都存在于两个时间序列中。我想对匹配的点进行线性回归,忽略没有'
的那些点。这是我目前的解决方案,但似乎有点冗长和丑陋:
indexes_used = sorted(list(set(series1).intersection(series2)))
perform_regression(series1.loc[indexes_used], series2.loc[indexes_used])
或者,我正在考虑做(但创建一个临时数据帧似乎是多余的):
temp_frame = pd.concat([series1, series2]).T.dropna() #need the transpose to keep timestamps on vertical axis
perform_regression(blabla)
有没有好办法呢?
答案 0 :(得分:5)
Series.align
:
import pandas as pd
a = pd.Series([4, 5, 6, 7], index=[1, 2, 3, 4])
b = pd.Series([49, 54, 62, 74], index=[2, 6, 4, 0])
a2, b2 = a.align(b, join="inner")
输出:
2 5
4 7
dtype: int64
2 49
4 62
dtype: int64