Spec-Zone.ru › pandas 0.25

pandas.DataFrame.iloc

DataFrame.iloc

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

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

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

  • Целое число, например 5.
  • Список или массив целых чисел, например [4, 3, 0].
  • Объект среза с целыми числами, например 1:7.
  • Булевый массив.
  • Функция callable с одним аргументом (вызываемый Series или DataFrame), которая возвращает допустимый результат для индексирования (один из перечисленных выше). Это полезно в цепочках методов, когда у вас нет ссылки на вызываемый объект, но вы хотите основать свой выбор на некотором значении.

.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

С объектом 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

С вызываемой функцией, полезной в цепочках методов. DataFrame, переданный в 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

С объектами 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–2012, 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/0.25.0/reference/api/pandas.DataFrame.iloc.html

Spec-Zone.ru

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