Spec-Zone.ru › pandas 1

pandas.DataFrame.iloc

propertyDataFrame.iloc[source]

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

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

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

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

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

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

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

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

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

.iloc будет поднимать IndexError если запрошенный индексатор находится вне границ, за исключением индексаторов slice, которые допускают индексирование вне границ (это соответствует семантике slice 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])
<class 'pandas.core.series.Series'>
>>> 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]])
<class 'pandas.core.frame.DataFrame'>
>>> df.iloc[[0, 1]]
     a    b    c    d
0    1    2    3    4
1  100  200  300  400

С объектом slice.

>>> 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

С вызываемым объектом, полезным в цепочках методов. Переданный в lambda x — это 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

С объектами slice.

>>> 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

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.iloc.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API