
В работе с большими объемами данных скорость доступа к данным становится критически важной. Методы at и iat предоставлены библиотекой Pandas именно для быстрого доступа к отдельным элементам DataFrame или Series.
at: предоставляет доступ к отдельной ячейке данных для DataFrame, используя метки (или названия) строки и столбца.iat: аналогичен методу at, но здесь индексация осуществляется с помощью целочисленных индексов. Он немного быстрее, так как обходит процесс поиска метки.Создадим простой DataFrame:
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])Теперь, если вы хотите получить значение из строки y и столбца B, вы можете использовать at:
value = df.at['y', 'B']
print(value) # Выведет: 5Для изменения значения:
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
df.at['y', 'B'] = 10
print(df)
# A B C
# x 1 4 7
# y 2 10 8
# z 3 6 9Используя тот же DataFrame, чтобы получить значение из второй строки (индекс 1) и второго столбца (индекс 1):
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
value = df.iat[1, 1]
print(value) # 5Для изменения значения:
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['x', 'y', 'z'])
df.iat[1, 1] = 10
print(df)
# A B C
# x 1 4 7
# y 2 10 8
# z 3 6 9Методы at и iat предназначены для быстрого доступа к отдельным ячейкам, и они обычно быстрее, чем loc и iloc. Однако это преимущество наиболее заметно на больших наборах данных. На маленьких наборах разница может быть незаметной.
loc или iloc.at и iat не поддерживают слайсинг.Оба метода (at и iat) поддерживают все типы данных, хранящиеся в DataFrame, включая числа, строки, даты и т. д. При этом сохраняется тип данных, что обеспечивает надежность и предсказуемость взаимодействия.
Если вы попытаетесь обратиться к метке или позиции, которой нет в DataFrame или Series, то будет вызвано исключение. Например:
# Вызовет ошибку, так как нет строки с меткой 'w'
# df.at['w', 'A']
# Аналогично, вызовет ошибку из-за выхода за пределы диапазона
# df.iat[10, 1]Это поведение гарантирует, что вы не получите неверные данные из-за опечатки или ошибки.
В то время как at и iat предоставляют быстрый доступ к данным, всегда стоит помнить о том, что прямое изменение данных в DataFrame может повлечь за собой нежелательные последствия, особенно при работе с большими объемами данных или в средах с несколькими пользователями. Всегда рекомендуется проверять ваши изменения и, при возможности, работать с копией данных, чтобы избежать потери или искажения исходных данных.
Методы at и iat – это мощные инструменты, которые обеспечивают быстрый доступ к данным в DataFrame или Series в Pandas. Они особенно полезны, когда необходимо обратиться к конкретной ячейке для чтения или изменения значения. Научившись ими пользоваться, вы сможете повысить эффективность работы с вашими данными.
Содержание: