仅从数据框中选择某些行的惯用法(其索引存在于其他数据框中)

Jam*_*mes 4 python pandas

所以我有两个pandas时间序列,两者的索引都是时间戳.问题是 - 并非所有时间戳都存在于两个时间序列中.我想对匹配的点执行线性回归,忽略那些没有"对"的点

这是我目前的解决方案,但它似乎有点冗长和丑陋:

indexes_used = sorted(list(set(series1).intersection(series2)))

perform_regression(series1.loc[indexes_used], series2.loc[indexes_used])
Run Code Online (Sandbox Code Playgroud)

或者,我正在考虑做(但创建临时数据帧似乎是多余的):

temp_frame = pd.concat([series1, series2]).T.dropna() #need the transpose to keep timestamps on vertical axis

perform_regression(blabla)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

HYR*_*YRY 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")
Run Code Online (Sandbox Code Playgroud)

输出:

2    5
4    7
dtype: int64

2    49
4    62
dtype: int64
Run Code Online (Sandbox Code Playgroud)