Spec-Zone.ru › pandas 0.24

pandas.Panel.iloc

Panel.iloc

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

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

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

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

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

См. больше в ref:Selection by Position <indexing.integer>.

См. также

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

С вызываемой функцией, полезной в цепочках методов. Передаваемый 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.24.2/reference/api/pandas.Panel.iloc.html

Spec-Zone.ru

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