Spec-Zone.ru › pandas 2

pandas.DataFrame.iloc

propertyDataFrame.iloc[source]

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

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

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

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

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

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

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

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

  • Функция 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])
<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

С объектом среза.

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

С объектами среза.

>>> 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/2.2.2/reference/api/pandas.DataFrame.iloc.html

Spec-Zone.ru

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