В чем отличия между loc и iloc ?

Спросят с вероятностью 14%



Методы loc и iloc предназначены для доступа к данным в DataFrame или Series, но они используют разные способы индексации.



loc



Использует метки для доступа к данным. Это означает, что вы используете имена строк и столбцов, которые вы видите на выводе вашего DataFrame или Series для выборки данных. Метод loc может использоваться для доступа к отдельным значениям, срезам, а также условной индексации.

import pandas as pd



data = pd.DataFrame({

'A': [1, 2, 3],

'B': [4, 5, 6]

}, index=['a', 'b', 'c'])



# Доступ к элементу с индексом 'b' и столбцом 'A'

print(data.loc['b', 'A']) # Вывод: 2



# Срез данных, включающий строки 'a' и 'b'

print(data.loc['a':'b'])




iloc



Использует целочисленную индексацию для доступа к данным, независимо от меток, которые установлены на индексах или столбцах DataFrame. Это означает, что вы используете числа, чтобы указать, какие строки или столбцы вы хотите выбрать, начиная от 0.

import pandas as pd



data = pd.DataFrame({

'A': [1, 2, 3],

'B': [4, 5, 6]

}, index=['a', 'b', 'c'])



# Доступ к элементу во второй строке и первом столбце (индексация начинается с 0)

print(data.iloc[1, 0]) # Вывод: 2



# Срез данных, включающий первые две строки

print(data.iloc[0:2])




Основные отличия

Тип индексации: loc работает с метками (названиями строк и столбцов), в то время как iloc работает с целочисленными позициями.

Использование срезов: Срезы в loc включают оба конца диапазона (закрытый интервал), в то время как срезы в iloc исключают последний элемент, как в обычной индексации списков Python.



Используйте loc, если знаете имена строк или столбцов, к которым хотите обратиться. Используйте iloc, когда вам удобнее работать с числовыми индексами, как в массивах. Это как разница между выбором книги по названию или по номеру на полке.



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 207 вопроса на Data Scientist. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых