获取dataframe中某列数值最接近指定值的一行:
df.iloc[(df["col"]-x).abs().argsort()[1:2]]
其中,(df["col"]-x).abs()获取了该列与指定值之间的绝对值差,使用argsort()进行排序,并使用切片取出最接近的值,不取0是排除自身。如果担心该列从在多个值为x的行,也可以先利用某列具有id性质的值筛掉自身,然后切片时取第一条数据即可。
获取dataframe中某列数值最接近指定值的一行:
df.iloc[(df["col"]-x).abs().argsort()[1:2]]
其中,(df["col"]-x).abs()获取了该列与指定值之间的绝对值差,使用argsort()进行排序,并使用切片取出最接近的值,不取0是排除自身。如果担心该列从在多个值为x的行,也可以先利用某列具有id性质的值筛掉自身,然后切片时取第一条数据即可。