Итак, у меня есть фрейм данных, содержащий несколько столбцов.Для каждого столбца я хотел бы получить индекс первой строки, который почти равен указанному пользователем числу (например, в пределах 0,05 от желаемого числа).Кадр данных выглядит примерно так:
ix col1 col2 col3
0 nan 0.2 1.04
1 0.98 nan 1.5
2 1.7 1.03 1.91
3 1.02 1.42 0.97
Скажем, я хочу, чтобы первая строка была почти равна 1,0, я ожидаю, что результат будет:
- index 1 для col1(не индекс 3, даже если они математически одинаково близки к 1,0)
- индекс 2 для col2
- индекс 0 для col3 (не индекс 3, даже если 0,97 ближе к 1, чем 1,04)
Я пробовал подход, который использует argsort ():
df.iloc[(df.col1-1.0).abs().argsort()[:1]]
Это, согласно другим темам, даст мне индекс строки в col1 со значениемближе всего к 1.0.Однако он возвращает только кадр данных, полный nans.Я также предположил бы, что этот метод не дает первое значение, близкое к 1, с которым он сталкивается в столбце, а скорее значение, которое ближе всего к 1.
Может кто-нибудь помочь мне с этим?