Функция Pandas DataFrame loc[] используется в Python для доступа к группе строк и столбцов по меткам или логическому массиву. Метод loc() в основном выполняется на основе меток, но булев массив также может это делать.
- Что такое функция DataFrame loc[] в Pandas?
- Синтаксис
- Параметры
- Возвращаемое значение
- Пример
- Доступ к нескольким столбцам DataFrame с помощью loc[]
- Pandas DataFrame loc[] в Jupyter Notebook
- loc[] с одной меткой в DataFrame
- Получение единственного значения
- Pandas loc[] с условными операторами
- С лямбда-функцией
- Установка значений DataFrame с помощью loc[]
- Заключение
Что такое функция DataFrame loc[] в Pandas?
Pandas DataFrame loc — это уникальный метод, который принимает метки индекса и возвращает строку или DataFrame, если метка индекса существует в вызывающем DataFrame. Входные данные могут быть различных типов. Одна метка, например, 9 или «x», или любое другое одиночное значение может быть любого типа. Это может быть список или массив меток. Ex – [‘a’,’b’,’c’,’d’], и это также может быть логический массив. Ex- [False, True, False].
Синтаксис
|
1 |
DataFrame.loc[] |
Параметры
Вот некоторые из разрешенных входных данных:
- Одиночная метка — возвращает строку как объект серии.
- Список меток — возвращает DataFrame выбранных строк.
- Срез с метками — возвращает серию с указанными строками, включая начальные и конечные метки.
- Логический массив — возвращает DataFrame для меток True; длина массива должна быть такой же, как у выбранной оси.
- Условный оператор или лямбда-функция — возвращает допустимое значение для выбора возвращаемых строк и столбцов.
Возвращаемое значение
Pandas loc[] возвращает скалярные значения, серии или DataFrame в зависимости от ввода.
Пример
Напишем программу, показывающую работу метода loc() в Python.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import pandas as pd dataset = { 'Name': ['Rohit', 'Mohit', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '03', '04', '05', '09'], 'Maths': ['93', '63', '74', '94', '83'], 'Science': ['88', '55', '66', '94', '35'], 'English': ['93', '74', '84', '92', '87']} # Changing the above dictionary into dataframe df = pd.DataFrame(dataset) # Setting index values index_values = ['1', '2', '3', '4', '5'] # Matching the index with the dataset df.index = index_values print("Dataframe:\n\n") print(df) # Now trying to access Sohit marks in maths only using loc() result_dataframe = df.loc['3', 'maths'] print("\n\n Marks of Sohit in Maths:", result_dataframe) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 |
Dataframe: Name Roll no Maths Science English 1 Rohit 01 93 88 93 2 Mohit 03 63 55 74 3 Sohit 04 74 66 84 4 Arun 05 94 94 92 5 Shubh 09 83 35 87 Marks of Sohit in Maths: 74 |
В приведенном выше примере мы создали словарь для хранения небольших наборов данных учащихся, которые включали в себя имена учащихся, отсутствие оценок по различным предметам, таким как математика, естествознание и английский язык. Предположим, мы хотим получить оценки одного учащегося по определенному предмету, тогда мы можем использовать метод loc() и передать имя учащегося и столбец, чтобы получить желаемый результат.
Доступ к нескольким столбцам DataFrame с помощью loc[]
Вы можете получить доступ к нескольким столбцам DataFrame, используя свойство loc[].
Напишем программу для возврата нескольких столбцов с помощью функции loc().
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import pandas as pd dataset = { 'Name': ['Rohit', 'Mohit', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '03', '04', '05', '09'], 'maths': ['93', '63', '74', '94', '83'], 'science': ['88', '55', '66', '94', '35'], 'english': ['93', '74', '84', '92', '87']} # Changing the above dictionary into dataframe df = pd.DataFrame(dataset) # Setting index values index_values = ['1', '2', '3', '4', '5'] # Matching the index with the dataset df.index = index_values print("Dataframe:\n\n") print(df) # Now trying to return multiple columns result_dataframe = df.loc[:, ['Roll no', 'maths']] print("\n\n Multiple Columns:\n", result_dataframe) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Dataframe: Name Roll no maths science english 1 Rohit 01 93 88 93 2 Mohit 03 63 55 74 3 Sohit 04 74 66 84 4 Arun 05 94 94 92 5 Shubh 09 83 35 87 Multiple Columns: Roll no maths 1 01 93 2 03 63 3 04 74 4 05 94 5 09 83 |
В приведенном выше примере мы видим, что мы вернули несколько столбцов, используя функцию loc() для одного и того же набора данных студентов. Столбцы, которые мы вернули, представляют собой roll number и maths из 5 столбцов. Мы можем вернуть несколько столбцов, оставив первый параметр пустым, а второй параметр — имя столбцов, которые мы хотим вернуть, разделенные знаком «:».
Pandas DataFrame loc[] в Jupyter Notebook
Jupyter Notebook — это веб-приложение с открытым исходным кодом, которое позволяет нам создавать и обмениваться документами, содержащими уравнения, визуализации, живой код и описательный текст, включая очистку и преобразование данных, численное моделирование, статистическое моделирование, визуализацию данных, машинное обучение и намного больше.
Давайте создадим блокнот и импортируем Pandas.
|
1 |
import pandas as pd |
Теперь мы будем использовать набор данных ratings.csv.
Нашим следующим шагом будет создание DataFrame с использованием функции Pandas read_csv().
|
1 2 |
df = pd.read_csv('ratings.csv') df.head() |
Мы должны использовать функцию DataFrame.head() для выбора первых пяти строк, потому что DataFrame очень большой, и нам не нужно показывать полный DataFrame.
![Понимание Pandas DataFrame loc[]](https://python-lab.ru/wp-content/uploads/2022/12/understanding-pandas-dataframe-loc.png)
Теперь давайте получим доступ к строкам и столбцам, используя Pandas loc[].
loc[] с одной меткой в DataFrame
Мы можем получить к нему доступ, используя одну метку в Pandas DataFrame.
|
1 |
df.loc[1] |
Он возвращает первую строку DataFrame в объекте Series.
![loc[] с одной меткой в DataFrame](https://python-lab.ru/wp-content/uploads/2022/12/loc-with-a-single-label-in-dataframe.png)
Мы можем увидеть тип объекта, используя функцию type().
![тип DataFrame loc[]](https://python-lab.ru/wp-content/uploads/2022/12/type-of-dataframe-loc.png)
Получение единственного значения
Мы можем получить одно значение, указав строки DataFrame и метки столбцов.
Давайте найдем placeID для строки 5 и индекса 4.
![Pandas DataFrame loc[] - объяснение](https://python-lab.ru/wp-content/uploads/2022/12/pandas-dataframe-loc-explanied.png)
Вы можете видеть, что мы получили значение placeID, равное 135104.
Pandas loc[] с условными операторами
Мы можем получить значения DataFrame, используя условные операторы.
Скажем, нам нужны первые 5 строк, у которых food_rating > 1.
|
1 |
df.loc[df['food_rating'] > 1].head() |
![Pandas loc[] с условными операторами](https://python-lab.ru/wp-content/uploads/2022/12/pandas-loc-with-conditional-statements.png)
В выводе вы можете видеть, что мы получили первые пять строк, у которых food_rating > 1.
С лямбда-функцией
Функция Python Lambda — это функция, определенная без имени. Мы можем использовать loc[] с лямбда-функцией.
|
1 |
df.loc[lambda df1: df1['userID'] == 'U1077'] |
![DataFrame loc[] с лямбда-функцией](https://python-lab.ru/wp-content/uploads/2022/12/dataframe-loc-with-lambda-function.png)
Мы определили и вызвали лямбда-функцию внутри loc[], чтобы получить единственные строки, чей идентификатор пользователя равен U1077.
Установка значений DataFrame с помощью loc[]
Мы можем установить значения DataFrame, используя атрибут loc[].
Мы можем установить единственное значение, указав метки строк и столбцов, чтобы установить значение определенного индекса.
|
1 2 |
df.loc[1, 'rating'] = 3 df.head() |
![Установка значений DataFrame с помощью loc[]](https://python-lab.ru/wp-content/uploads/2022/12/setting-dataframe-values-using-loc-1.png)
Вы можете видеть, что мы изменили рейтинг 1 проиндексированной строки с 2 до 3. Наш обновленный DataFrame отразил это значение. Мы можем установить значения для всей строки.
Давайте назначим значение Python None для идентификатора пользователя U1068.
|
1 2 |
df.loc[2] = None df.head() |

Вы можете видеть в значениях третьей строки, что строка превратилась в None, а числовые значения превратились в NaN.
Заключение
![Атрибут Pandas DataFrame loc [] в Python Атрибут Pandas DataFrame loc[] в Python](https://python-lab.ru/wp-content/uploads/2022/12/pandas-dataframe-loc-attribute-in-python.png)
Атрибут Python DataFrame loc[] полезен, потому что мы можем получать определенные значения, а также устанавливать значения. Поддержка условных параметров и лямбда-выражений с атрибутом loc[] делает его надежным ресурсом.
