我有下表:
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? _,但似乎结果在上面和下面,我想最后只得到一个数字。
*我没有代码示例,因为我找不到用于获取最近值的参数
答案 0 :(得分:4)
将列year
转换为索引,然后减去值,获取绝对值并按最近的值获取最后的索引(此处为年份)-这里的最小值为DataFrame.idxmin
:
val = 830000
s = df.set_index('year').sub(val).abs().idxmin()
print (s)
pop1 2
pop2 1
dtype: int64