idxmax () дает индекс, который не может быть найден. - PullRequest
0 голосов
/ 14 октября 2018

Привет У меня есть df с индексом от 0 до 00.6279999999999999.

Я использовал idxmax (), чтобы найти индекс переменной max в одном столбце - df [Столбец A].Допустим, индекс равен 0,5579999999999998, и я присвоил его переменной max, например: max = df [Столбец A] .idxmax

Однако, когда я пытаюсь найти элемент / переменную по индексу at в другом столбце (Столбец B), используя df [Столбец B] .iloc (max)

Я получаю ошибку: нет оси с именем 0.5579999999999998 для типа объекта

Но когда я проверяю вручную, я вижу индекс 0.5579999999999998.

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

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

1 Ответ

0 голосов
/ 14 октября 2018

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

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

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

df[np.isclose(df.index, df['Column A'].idxmax())]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...