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值使用上面的代码。
答案 0 :(得分:2)
如果我理解正确,我认为您希望s2
上的reindex
与method='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