Python pandas: позиционные индексаторы не имеют границ с .iloc - PullRequest
0 голосов
/ 26 марта 2020

df.tail () возвращает:

35114   False   False   0.0 False   False   0.0 False   False   0.0 0.0 0.0 False   
35115   False   False   0.0 False   False   0.0 False   False   0.0 0.0 0.0 False   
35116   False   False   0.0 False   False   0.0 False   False   0.0 0.0 0.0 False   
35117   False   False   0.0 False   False   0.0 False   False   0.0 0.0 0.0 False   
35118   False   False   0.0 False   False   0.0 False   False   0.0 0.0 0.0 False

df.iloc [35118] возвращает:

IndexError: single positional indexer is out-of-bounds

df.iloc [[35118]] возвращает:

IndexError: positional indexers are out-of-bounds

df.iloc [[10]] возвращает:

10   False   False   0.0   False   ....

Не обращайте внимания на .astype (int), который я мог бы сделать, почему этот индекс не может быть создан через индекс, который явно существует?

df.index [-10:] возвращает:

Int64Index([35109, 35110, 35111, 35112, 35113, 35114, 35115, 35116, 35117,
            35118], dtype='int64')

1 Ответ

0 голосов
/ 26 марта 2020

Если вы попытаетесь получить доступ к строке, используя iloc [n] , число ( n ) должно быть меньше количества строк. В этом случае вы пытаетесь получить доступ к строке, проходящей ее положение (не значение индекса), начиная с 0 .

Итак, начните с выполнения: df.index.size и отображаемое число покажет, сколько у вас строк.

Очевидно, номер строки в вашем DataFrame меньше или равен номеру, который вы передали (некоторые значения индекса отсутствуют).

С другой стороны Кроме того, вы можете получить доступ к строке также с помощью loc [n] , на этот раз передавая индекс значение .

Так, например, df.loc[35118] вернет строку с индексом, равным к указанному значению, в вашем случае последняя строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...