Spec-Zone.ru › pandas 1

pandas.Series.iloc

propertySeries.iloc[source]

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

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

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

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

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

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

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

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

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

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

См. больше в Выбор по позиции.

См. также

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.Series.iloc.html

Spec-Zone.ru

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