pandas.Series.iloc
- propertySeries.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.Series.iloc.html