Pandas DataFrame.at
Pandas DataFrame.at
The DataFrame.at property in pandas provides a fast and label-based way to access or modify a single value in a DataFrame. It is primarily used for accessing or setting scalar values in a DataFrame based on row and column labels.
Syntax
The syntax for accessing or modifying a value using DataFrame.at is:
DataFrame.at[row_label, column_label]Here, DataFrame refers to the pandas DataFrame, and row_label and column_label are the labels for the row and column, respectively.
Parameters
row_label: The label of the row to access or modify.column_label: The label of the column to access or modify.
Returns
The value at the specified row and column in the DataFrame.
Examples
Accessing a Single Value
Use DataFrame.at to access a specific value in a DataFrame.
Python Program
import pandas as pd
# Create a DataFrame
data = {
'Name': ['Arjun', 'Ram', 'Priya'],
'Age': [25, 30, 35],
'Salary': [70000, 80000, 90000]
}
df = pd.DataFrame(data)
# Access the age of Ram
print("Age of Ram:")
age_of_ram = df.at[1, 'Age']
print(age_of_ram)Output
Age of Ram:
30Modifying a Single Value
Use DataFrame.at to modify a specific value in a DataFrame.
Python Program
import pandas as pd
# Create a DataFrame
data = {
'Name': ['Arjun', 'Ram', 'Priya'],
'Age': [25, 30, 35],
'Salary': [70000, 80000, 90000]
}
df = pd.DataFrame(data)
# Update the salary of Priya
print("Updating Priya's Salary:")
df.at[2, 'Salary'] = 95000
print(df)Output
Updating Priya's Salary:
Name Age Salary
0 Arjun 25 70000
1 Ram 30 80000
2 Priya 35 95000Using DataFrame.at with a Multi-Index
DataFrame.at also supports MultiIndex DataFrames.
Python Program
import pandas as pd
# Create a MultiIndex DataFrame
data = {
'Name': ['Arjun', 'Ram', 'Priya'],
'Department': ['HR', 'Finance', 'IT'],
'Salary': [70000, 80000, 90000]
}
df = pd.DataFrame(data)
df.set_index(['Department', 'Name'], inplace=True)
# Access Priya's salary
print("Priya's Salary:")
salary_of_priya = df.at[('IT', 'Priya'), 'Salary']
print(salary_of_priya)Output
Priya's Salary:
90000Accessing a Value in a Non-Numeric Column
Use DataFrame.at to access a non-numeric value, such as a string.
Python Program
import pandas as pd
# Create a DataFrame
data = {
'Name': ['Arjun', 'Ram', 'Priya'],
'Age': [25, 30, 35],
'Department': ['HR', 'Finance', 'IT']
}
df = pd.DataFrame(data)
# Access the department of Arjun
print("Department of Arjun:")
department_of_arjun = df.at[0, 'Department']
print(department_of_arjun)Output
Department of Arjun:
HRSummary
In this tutorial, we explored the DataFrame.at property in pandas. Key takeaways include:
- Using
DataFrame.atfor label-based access to scalar values. - Efficiently modifying specific values in a DataFrame.
- Supporting MultiIndex operations with
DataFrame.at.
The DataFrame.at property is an efficient and convenient way to access or update single values in a pandas DataFrame.