DataFrame.loc / Series.loc
loc — индексатор для доступа к данным по меткам строк и столбцов. В отличие от iloc (по позициям), loc использует значения индекса/имена столбцов. Это атрибут, доступ через квадратные скобки df.loc[row, col].
Сигнатура
DataFrame.loc[row_indexer, column_indexer]
Series.loc[indexer]
Параметры
Индексаторы:
метка —
df.loc["s1"];список меток —
df.loc[["s1", "s3"]];срез
start:stop— обе границы включены (в отличие отiloc);булева маска —
df.loc[df["temp"] > 22];callable — функция, принимающая
dfи возвращающая один из вышеперечисленных видов.
Возвращаемое значение
Скаляр, Series или DataFrame.
Примеры
Пример 1. Строка по метке
import pandas as pd
df = pd.DataFrame(
{"temp": [22, 23, 24]},
index=["s1", "s2", "s3"],
)
print(df.loc["s2"])
temp 23
Name: s2, dtype: int64
Пример 2. Срез включает обе границы
import pandas as pd
df = pd.DataFrame({"v": [10, 20, 30, 40]},
index=["a", "b", "c", "d"])
print(df.loc["b":"d"])
v
b 20
c 30
d 40
Пример 3. Строки и столбцы
import pandas as pd
df = pd.DataFrame(
{"temp": [22, 23, 24], "humidity": [55, 60, 58]},
index=["s1", "s2", "s3"],
)
print(df.loc[["s1", "s3"], "temp"])
s1 22
s3 24
Name: temp, dtype: int64
Пример 4. Булева маска
import pandas as pd
df = pd.DataFrame({"temp": [22, 28, 21, 30]})
print(df.loc[df["temp"] > 25])
temp
1 28
3 30
Пример 5. Присваивание через loc
import pandas as pd
df = pd.DataFrame({"v": [10, 20, 30]}, index=["a", "b", "c"])
df.loc["b", "v"] = 99
print(df)
v
a 10
b 99
c 30
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.