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

时间:2014-06-12 02:14:31

标签: python pandas

所以我有两个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)

有没有好办法呢?

1 个答案:

答案 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