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

时间:2020-10-23 11:31:58

标签: python pandas

我有下表:

   year   pop1     pop2
0   0    100000    100000
1   1    999000    850000
2   2    860000    700000
3   3    770000    650000

我想为每个流行音乐(pop1,pop2)查找流行音乐最接近给定数字的年份,例如,流行音乐最接近830000的年份。

有什么方法可以根据给定值在列中找到最接近的值?

我看过这篇文章(How do I find the closest values in a Pandas series to an input number? _,但似乎结果在上面和下面,我想最后只得到一个数字。

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

1 个答案:

答案 0 :(得分:4)

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

val = 830000

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