Атрибут loc
Атрибут loc применяется к Series
и обеспечивает доступ к элементам по меткам индекса.
В отличие от позиционной индексации через iloc,
loc работает с именами индексов. С его помощью можно
получать отдельные значения, срезы, а также выполнять
условную фильтрацию данных.
Синтаксис
ser.loc[index_label]
ser.loc[start_label:end_label]
ser.loc[boolean_mask]
Пример
Давайте получим значение по конкретной метке индекса:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
res = ser.loc['c']
print(res)
Результат выполнения кода:
30
Пример
Теперь получим срез элементов по диапазону меток:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
res = ser.loc['b':'d']
print(res)
Результат выполнения кода:
b 20
c 30
d 40
dtype: int64
Пример
Используем логическую маску для фильтрации значений:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
res = ser.loc[ser > 25]
print(res)
Результат выполнения кода:
c 30
d 40
e 50
dtype: int64
Пример
Получим несколько элементов по списку меток:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
res = ser.loc[['a', 'c', 'e']]
print(res)
Результат выполнения кода:
a 10
c 30
e 50
dtype: int64
Пример
Можно также изменять значения через loc:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
ser.loc['b'] = 100
ser.loc['c':'d'] = [200, 300]
print(ser)
Результат выполнения кода:
a 10
b 100
c 200
d 300
e 50
dtype: int64