Автор оригинала: Pankaj Kumar.
PandaS DataFrame LoC [] позволяет нам получить доступ к группе строк и столбцов. Мы можем пропустить этикетки, а также логические значения для выбора строк и столбцов.
Dataframe loc [] входы
Некоторые из допустимых входов:
- Одно ярлык – Возвращая ряд в качестве объекта серии.
- Список ярлыков – возвращает dataframe выбранных строк.
- Ломтик с этикетками – Возвращает серию с указанными строками, включая ярлыки запуска и остановки.
- Логический массив – Возвращает dataframe для истинных меток, длина массива должна быть такой же, как выбрано оси.
- Условный оператор или вызываемая функция – Необходимо вернуть допустимое значение, чтобы выбрать строки и столбцы для возврата.
Dataframe loc [] примеры
Давайте посмотрим на некоторые примеры использования атрибута объекта DataFrame. Но, во-первых, мы создадим образец DataFrame для нас для использования.
import pandas as pd d1 = {'Name': ['John', 'Jane', 'Mary'], 'ID': [1, 2, 3], 'Role': ['CEO', 'CTO', 'CFO']} df = pd.DataFrame(d1) print('DataFrame:\n', df)
Выход:
DataFrame: Name ID Role 0 John 1 CEO 1 Jane 2 CTO 2 Mary 3 CFO
1. loc [] с одной этикеткой
row_1_series = df.loc[1] print(type(row_1_series)) print(df.loc[1])
Выход:
Name Jane ID 2 Role CTO Name: 1, dtype: object
2. loc [] со списком метки
row_0_2_df = df.loc[[0, 2]] print(type(row_0_2_df)) print(row_0_2_df)
Выход:
Name ID Role 0 John 1 CEO 2 Mary 3 CFO
3. Получение единого значения
Мы можем указать этикетки строки и столбцов, чтобы получить одно значение из объекта DataFrame.
jane_role = df.loc[1, 'Role'] print(jane_role) # CTO
4. Ломтик с LOC []
Мы также можем передавать ломтик этикеток в том случае, в этом случае этикетки начала и остановки будут включены в объект серии результатов.
roles = df.loc[0:1, 'Role'] print(roles)
Выход:
0 CEO 1 CTO Name: Role, dtype: object
5. loc [] С массивом логических ценностей
row_1_series = df.loc[[False, True, False]] print(row_1_series)
Выход:
Name ID Role 1 Jane 2 CTO
Поскольку содержит DataFrame 3 строк, длина массива должна быть 3. Если аргумент логической длины массива не совпадает с длиной оси, IndexError: вещь неправильная длина Поднялся.
6. LOC [] с условными утверждениями
data = df.loc[df['ID'] > 1] print(data)
Выход : DataFrame строк, где идентификатор больше 1.
Name ID Role 1 Jane 2 CTO 2 Mary 3 CFO
7. DataFrame LOC [] с Callable Function
Мы также можем использовать функцию лямбда с атрибутом dataframe loc [].
id_2_row = df.loc[lambda df1: df1['ID'] == 2] print(id_2_row)
Выход:
Name ID Role 1 Jane 2 CTO
Настройка значений DataFrame, используя атрибут LOC []
Одной из особых особенностей LOC [] является то, что мы можем использовать его для установки значений DataFrame. Давайте посмотрим на некоторые примеры для установки значений DataFrame с использованием атрибута LOC [].
1. Установка единого значения
Мы можем указать метки строки и столбцов, чтобы установить значение определенного индекса.
import pandas as pd d1 = {'Name': ['John', 'Jane', 'Mary'], 'ID': [1, 2, 3], 'Role': ['CEO', 'CTO', 'CFO']} df = pd.DataFrame(d1, index=['A', 'B', 'C']) print('Original DataFrame:\n', df) # set a single value df.loc['B', 'Role'] = 'Editor' print('Updated DataFrame:\n', df)
Выход:
Original DataFrame: Name ID Role A John 1 CEO B Jane 2 CTO C Mary 3 CFO Updated DataFrame: Name ID Role A John 1 CEO B Jane 2 Editor C Mary 3 CFO
2. Установка значений целой строки
Если мы укажем только одну метку, все значения в этой строке будут установлены на указанный.
df.loc['B'] = None print('Updated DataFrame with None:\n', df)
Выход:
Updated DataFrame with None: Name ID Role A John 1.0 CEO B None NaN None C Mary 3.0 CFO
3. Установка значений целого столбца
Мы можем использовать ломтик, чтобы выбрать все строки и указать столбец, чтобы установить его значения указанному.
df.loc[:, 'Role'] = 'Employee' print('Updated DataFrame Role to Employee:\n', df)
Выход:
Updated DataFrame Role to Employee: Name ID Role A John 1.0 Employee B None NaN Employee C Mary 3.0 Employee
4. Установка значения на основе условия
df.loc[df['ID'] == 1, 'Role'] = 'CEO' print(df)
Выход:
Name ID Role A John 1.0 CEO B None NaN Employee C Mary 3.0 Employee
Заключение
Атрибут Python DataFrame LOC [] очень полезен, потому что мы можем получить определенные значения, а также установить значения. Поддержка условных параметров и атрибутов Lambda с атрибутом LOC [] делает его очень мощным ресурсом.