Spec-Zone.ru › pandas 2

pandas.Series.iloc

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

Spec-Zone.ru

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