得到最近值的行

时间:2017-11-30 17:16:26

标签: python pandas

在pandas中我想介绍一个新专栏' Neighbor'在我的数据帧中保存(例如)索引或另一行的值,其中某列B最接近当前行的值。 E.g。

   A   Neighbor
0  5   1
1  4   0
2  1   3
3  2   2
4  10  0

你知道大熊猫的功能吗?由于我的数据集非常大,不幸的是太慢了。

谢谢!

2 个答案:

答案 0 :(得分:1)

IDK,无论您是否检查我之前提问的更新答案,这都是我使用的方式

a=df.A.values[:,None]-df.A.values
np.fill_diagonal(a, 9999999)
np.argmin(abs(a),0)
Out[1160]: array([1, 0, 3, 2, 0], dtype=int64)

答案 1 :(得分:1)

这样的事情可能会起到作用:

df['myindex']  = df.index
# result = df.sort(['A'])
result = df.sort_values(by='A')
result['NeighborIndex'] = result['myindex'].shift(-1)