DataFrame.at / Series.at

Свойство at предоставляет быстрый доступ к одиночной ячейке по меткам индекса (label-based). Работает значительно быстрее loc для одиночных значений и допускает запись.

Сигнатура

DataFrame.at[row_label, column_label]
Series.at[label]

Параметры

  • row_label — метка строки.

  • column_label — метка столбца.

Возвращаемое значение

Скалярное значение (или присваивание новой ячейке).

Примеры

Пример 1. Чтение значения

import pandas as pd

df = pd.DataFrame({"a": [10, 20, 30], "b": [40, 50, 60]})
print(df.at[1, "a"])
20

Пример 2. Запись значения

Корректируем выбросное показание температуры:

import pandas as pd

df = pd.DataFrame({"temp": [22.1, 99.0, 22.3]})
df.at[1, "temp"] = 22.2
print(df)
   temp
0  22.1
1  22.2
2  22.3

Пример 3. Доступ в Series

import pandas as pd

s = pd.Series([100, 200, 300], index=["x", "y", "z"])
print(s.at["y"])
200

Пример 4. С нестандартным индексом

import pandas as pd

df = pd.DataFrame(
    {"value": [5, 10, 15]},
    index=pd.Index(["A0", "A1", "A2"], name="pin"),
)
print(df.at["A2", "value"])
15

Пример 5. Сравнение с loc

Оба варианта работают, но at быстрее для одиночной ячейки:

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3]})
print(df.at[0, "a"], df.loc[0, "a"])
1 1

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.