
В библиотеке Pandas методы loc и iloc – это мощные инструменты для индексации и выборки данных из DataFrame и Series. В отличие от базовых методов at и iat, которые обеспечивают быстрый доступ к отдельным элементам, loc и iloc позволяют выполнять более сложные операции с выборками.
loc: используется для индексации с помощью меток.iloc: используется для индексации по целочисленным позициям.Для начала создадим простой DataFrame:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])Выбор строки по метке:
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
print(df.loc['x']) # Выведет строку с меткой 'x'
# A 1
# B 4
# C 7
# Name: x, dtype: int64Выбор нескольких строк и столбцов:
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
print(df.loc[['x', 'y'], ['A', 'B']])
# A B
# x 1 4
# y 2 5Использование условных операторов:
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
print(df.loc[df['A'] > 1])
# A B C
# y 2 5 8
# z 3 6 9Используя ранее созданный DataFrame:
Выбор строки по индексу:
print(df.iloc[0]) # Выведет первую строкуВыбор нескольких строк и столбцов:
print(df.iloc[0:2, 0:2])Выбор строки и столбца:
print(df.iloc[1, 1]) # Выведет значение из второй строки и второго столбцаПри использовании срезов с loc и iloc необходимо помнить об их особенностях:
Срезы с loc: Включают в себя обе границы.
print(df.loc['x':'y']) # Включает строки 'x' и 'y'Срезы с iloc: Включают начальную границу, но исключают конечную.
print(df.iloc[0:2]) # Включает 0-й и 1-й индексы, но не включает 2-йloc может использоваться с булевой индексацией, что делает выборку данных особенно гибкой:
print(df.loc[df['A'] > 1 & (df['B'] < 6)])Этот пример вернёт все строки, в которых значение в столбце A больше 1 и значение в столбце B меньше 6.
Вы можете комбинировать методы loc и iloc с другими функциями Pandas для продвинутой индексации:
# Получить среднее значение столбца 'A' для строк, где 'B' > 5
mean_value = df.loc[df['B'] > 5, 'A'].mean()
print(mean_value)Также вы можете использовать loc и iloc для установки значений:
df.loc['x', 'A'] = 10
df.iloc[1, 2] = 20loc диапазон включает оба конца, в то время как в iloc – только начальное значение.loc использует метки, iloc – целочисленные позиции.loc или к несуществующему индексу через iloc будет вызвано исключение.loc. Если вы работаете с позициями, основанными на числовом порядке, выбирайте iloc.loc, так как он включает в себя обе границы диапазона.Методы loc и iloc – ключевые инструменты при работе с данными в Pandas. Они предоставляют гибкость и мощь, которые делают Pandas одним из лучших инструментов для анализа данных.
Содержание: