idxmax () дает индекс, который не может быть найден.

1

Приветствия У меня есть 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.

Это ошибка типа? или просто я глупый?

Заранее благодарю вас за вашу любезную помощь.

Теги:
pandas
python-3.x
indexing

1 ответ

1
Лучший ответ

При работе с такими крошечными значениями всегда существует опасность неточностей с плавающей запятой. То, что возвращает idxmax(), может отличаться от того, что существует в индексе, с точностью до 20 цифр точности.

Первое предложение, которое я предлагаю, - либо масштабировать индекс, округлять его, либо не иметь его как индекс вообще.

Теперь, чтобы получить доступ к этой конкретной строке, используйте np.isclose и проиндексируйте DataFrame с помощью маски:

df[np.isclose(df.index, df['Column A'].idxmax())]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню