熊猫在列中找到最接近的值

Reu*_*eut 3 python pandas

我有下表:

   year   pop1     pop2
0   0    100000    100000
1   1    999000    850000
2   2    860000    700000
3   3    770000    650000
Run Code Online (Sandbox Code Playgroud)

我想为每个 pop (pop1 ,pop2) 找到 pop 最接近给定数字的年份,例如,pop 最接近 830000 的年份。

有没有办法根据给定的值在列内找到最接近的值?

我看过这篇文章(如何在 Pandas 系列中找到与输入数字最接近的值? _ 但似乎这里的结果是上下,我最终只能得到一个数字。

*我没有代码示例,因为我没有找到任何用于获取最近的参数

jez*_*ael 5

将列转换year为索引,然后减去值,通过最接近的值获取绝对值和最后一个索引(此处为年份) - 这里最小为DataFrame.idxmin

val = 830000

s = df.set_index('year').sub(val).abs().idxmin()
print (s)
pop1    2
pop2    1
dtype: int64
Run Code Online (Sandbox Code Playgroud)