pandas.Series.iloc#

свойство Series.iloc[источник]#

Индексирование, основанное исключительно на целочисленных позициях для выбора по позиции.

Устарело с версии 2.2.0: Возврат кортежа из вызываемого объекта устарел.

.iloc[] в основном основан на целочисленной позиции (от 0 to length-1 оси), но также может использоваться с булевым массивом.

Допустимые входные данные:

  • Целое число, например. 5.

  • Список или массив целых чисел, например. [4, 3, 0].

  • Объект среза с целыми числами, например 1:7.

  • Булев массив.

  • A callable функция с одним аргументом (вызывающий Series или DataFrame), которая возвращает допустимый вывод для индексирования (один из вышеперечисленных). Это полезно в цепочках методов, когда у вас нет ссылки на вызывающий объект, но вы хотите основывать выбор на некотором значении.

  • Кортеж индексов строк и столбцов. Элементы кортежа состоят из одного из вышеуказанных входных данных, например. (0, 1).

.iloc вызовет исключение IndexError если запрошенный индексатор выходит за границы, за исключением срез индексаторы, которые допускают индексацию за пределами диапазона (это соответствует python/numpy срез семантика).

Подробнее см. Выбор по позиции.

Смотрите также

DataFrame.iat

Быстрый доступ к скаляру по целочисленной позиции.

DataFrame.loc

Чисто меточный индексатор для выбора по метке.

Series.iloc

Индексирование, основанное исключительно на целочисленных позициях для выбора по позиции.

Примеры

>>> mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
...           {'a': 100, 'b': 200, 'c': 300, 'd': 400},
...           {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000}]
>>> df = pd.DataFrame(mydict)
>>> df
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

Индексирование только строк

Со скалярным целым числом.

>>> type(df.iloc[0])

>>> df.iloc[0]
a    1
b    2
c    3
d    4
Name: 0, dtype: int64

Список целых чисел.

>>> df.iloc[[0]]
   a  b  c  d
0  1  2  3  4
>>> type(df.iloc[[0]])

>>> df.iloc[[0, 1]]
     a    b    c    d
0    1    2    3    4
1  100  200  300  400

С помощью срез объект.

>>> df.iloc[:3]
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

С булевой маской той же длины, что и индекс.

>>> df.iloc[[True, False, True]]
      a     b     c     d
0     1     2     3     4
2  1000  2000  3000  4000

С вызываемым объектом, полезно в цепочках методов. x переданы в lambda это DataFrame, который нарезается. Это выбирает строки, чья метка индекса четная.

>>> df.iloc[lambda x: x.index % 2 == 0]
      a     b     c     d
0     1     2     3     4
2  1000  2000  3000  4000

Индексирование по обеим осям

Вы можете смешивать типы индексаторов для индекса и столбцов. Используйте : для выбора всей оси.

Со скалярными целыми числами.

>>> df.iloc[0, 1]
2

Со списками целых чисел.

>>> df.iloc[[0, 2], [1, 3]]
      b     d
0     2     4
2  2000  4000

С срез объекты.

>>> df.iloc[1:3, 0:3]
      a     b     c
1   100   200   300
2  1000  2000  3000

С булевым массивом, длина которого соответствует столбцам.

>>> df.iloc[:, [True, False, True, False]]
      a     c
0     1     3
1   100   300
2  1000  3000

С вызываемой функцией, которая ожидает Series или DataFrame.

>>> df.iloc[:, lambda df: [0, 2]]
      a     c
0     1     3
1   100   300
2  1000  3000