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