Приветствия У меня есть df с индексом от 0 до 00.6279999999999999.
Я использовал idxmax(), чтобы найти индекс максимальной переменной в одном столбце - df [Столбец A]. Допустим, что индекс равен 0,5579999999999998, и я назначил его переменной max eg: max = df [Column A].idxmax
Однако, когда я пытаюсь найти элемент/переменную в индексе в другом столбце (столбец B), используя df [Column B].iloc(max)
Я получаю ошибку: Нет оси с именем 0.5579999999999998 для типа объекта
Но когда я проверю вручную, я вижу индекс 0.5579999999999998.
Это ошибка типа? или просто я глупый?
Заранее благодарю вас за вашу любезную помощь.
При работе с такими крошечными значениями всегда существует опасность неточностей с плавающей запятой. То, что возвращает idxmax(), может отличаться от того, что существует в индексе, с точностью до 20 цифр точности.
Первое предложение, которое я предлагаю, - либо масштабировать индекс, округлять его, либо не иметь его как индекс вообще.
Теперь, чтобы получить доступ к этой конкретной строке, используйте np.isclose
и проиндексируйте DataFrame с помощью маски:
df[np.isclose(df.index, df['Column A'].idxmax())]