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