pandas.DataFrame.iloc
- propertyDataFrame.iloc[source]
-
Индексирование по чисто целочисленным позициям для выбора по положению.
.iloc[]в основном основано на целочисленных позициях (от0доlength-1оси), но также может использоваться с булевым массивом.Допустимые входные данные:
Целое число, например,
5.Список или массив целых чисел, например,
[4, 3, 0].Объект среза с целыми числами, например,
1:7.Булевый массив.
Функция
callable, которая принимает один аргумент (вызываемый Series или DataFrame) и возвращает допустимый результат для индексирования (один из вышеперечисленных). Это полезно в цепочках методов, когда у вас нет ссылки на вызываемый объект, но вы хотите основывать свой выбор на каком-то значении.Кортеж из индексов строк и столбцов. Элементы кортежа состоят из одного из вышеперечисленных входных данных, например,
(0, 1).
.ilocбудет подниматьIndexErrorесли запрошенный индексатор находится вне границ, за исключением индексаторов slice, которые допускают индексирование вне границ (это соответствует семантике slice 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С вызываемым объектом, полезным в цепочках методов. Переданный в
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С объектами 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–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/1.5.0/reference/api/pandas.DataFrame.iloc.html