最近值迭代

时间:2016-07-28 18:50:18

标签: python pandas

s1 = pd.Series({11:100, 13:102, 17:99})
s2 = pd.Series({10:1, 14:2, 18:3})

有了这些系列,我可以单独使用s1&s; s索引,通过s2的最近索引找到s2的值。例如:

s2.values[np.abs(s2.index - s1.index[0]).argmin()]

返回1因为11,s1&#39的第一个索引最接近10。

我似乎无法弄清楚如何创建一个具有s1并且迭代这些值的DataFrame,而不使用我已经被教过的for循环在pandas中是不切实际的。

因此,所需的结果是一个DataFrame,其中s1的值在一列中,另一列的s2值使用上面的代码。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,我认为您希望s2上的reindexmethod='nearest'一起使用:

s2 = s2.reindex(s1.index, method='nearest')
df = pd.DataFrame({'s1': s1, 's2': s2})

结果输出:

     s1  s2
11  100   1
13  102   2
17   99   3