Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
В работе с библиотекой Pandas для языка программирования Python часто возникает необходимость выбирать или изменять определенные данные в DataFrame или Series. Для этого используются два основных метода, которые иногда вызывают путаницу из-за своего сходства — это iloc
и loc
.
Рассмотрим пример. Допустим, есть DataFrame с данными о студентах и их оценками.
import pandas as pd data = { 'Name': ['John', 'Anna', 'Peter', 'Linda', 'James'], 'Score': [85, 90, 78, 92, 88], } df = pd.DataFrame(data) print(df)
Пример вывода DataFrame:
Name Score
0 John 85
1 Anna 90
2 Peter 78
3 Linda 92
4 James 88
Если необходимо получить данные об Anna и ее оценке, вот как можно это сделать с помощью loc
и iloc
.
print(df.loc[1]) print(df.iloc[1])
В обоих случаях будет получен один и тот же результат:
Name Anna
Score 90
Name: 1, dtype: object
Здесь возникает вопрос: если результат одинаковый, то в чем разница между iloc
и loc
?
Основное различие между этими двумя методами заключается в том, что iloc
применяется для обращения по численному индексу, тогда как loc
используется для обращения по метке (label).
В приведенном выше примере индексы и метки совпадают, поэтому результаты выглядят одинаковыми. Но что если индексы изменить?
df.index = ['a', 'b', 'c', 'd', 'e'] print(df)
Теперь DataFrame выглядит следующим образом:
Name Score
a John 85
b Anna 90
c Peter 78
d Linda 92
e James 88
Если попытаться получить данные об Anna, используя те же методы, результаты будут различными.
print(df.loc['b']) print(df.iloc[1])
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
loc['b']
вернет данные об Anna, потому что ‘b’ — это метка второй строки. iloc[1]
также вернет данные об Anna, потому что 1 — это численный индекс второй строки.
Однако, если попытаться использовать iloc['b']
, возникнет ошибка, потому что iloc
ожидает численный индекс. Аналогично, loc[1]
также вызовет ошибку, поскольку loc
ожидает метку.
Вот основное различие между iloc
и loc
. Важно помнить об этом при работе с данными в Pandas.
Добавить комментарий