Атрибут loc
Атрибут loc применяется к DataFrame
и позволяет выбирать данные по меткам строк и столбцов.
В квадратных скобках передаются метки строк,
затем столбцов. Метки могут быть одиночными,
списком, срезом или логическим массивом.
Синтаксис
df.loc[метки_строк, метки_столбцов]
Пример
Давайте получим одну конкретную ячейку по меткам:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
}, index=['row1', 'row2', 'row3', 'row4', 'row5'])
res = df.loc['row2', 'b']
print(res)
Результат выполнения кода:
20
Пример
Выберем несколько строк и один столбец:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
}, index=['row1', 'row2', 'row3', 'row4', 'row5'])
res = df.loc[['row1', 'row3', 'row5'], 'a']
print(res)
Результат выполнения кода:
row1 1
row3 3
row5 5
Name: a, dtype: int64
Пример
Используем срез по строкам и выбор нескольких столбцов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
}, index=['row1', 'row2', 'row3', 'row4', 'row5'])
res = df.loc['row2':'row4', ['a', 'b']]
print(res)
Результат выполнения кода:
a b
row2 2 20
row3 3 30
row4 4 40
Пример
Фильтрация строк с помощью логического условия:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
}, index=['row1', 'row2', 'row3', 'row4', 'row5'])
res = df.loc[df['a'] > 2, 'b']
print(res)
Результат выполнения кода:
row3 30
row4 40
row5 50
Name: b, dtype: int64