Get the value of a DataFrame cell in Python Pandas

David Y.
—The Problem
How can I retrieve the value of a single cell in a Python Pandas DataFrame? I want just the value, not a new DataFrame with only one cell.
The Solution
We can retrieve the value of a single DataFrame cell using the DataFrame.at property, providing the row and column labels for the element we want to access:
import pandas # Set up and print the DataFrame data = { "Product": ["Apple", "Orange", "Pear"], "Cost Price": [1, 2, 3], "Selling Price": [2, 3, 4], } df = pandas.DataFrame(data) print(df) print() # will print: # Product Cost Price Selling Price # 0 Apple 1 2 # 1 Orange 2 3 # 2 Pear 3 4 # Retrieve "Pear" df_cell = df.at[2, "Product"] print(df_cell) # will print "Pear"
Note that the value 2 here is being interpreted as a row label, rather than a row number. If we want to access the value of a cell using the indices of its row and column rather than the label, we can use DataFrame.iat:
# Retrieve "Pear" df_cell = df.iat[2, 0] print(df_cell) # will print "Pear"
We can also use DataFrame.loc in place of DataFrame.at, or DataFrame.iloc in place of DataFrame.iat:
# Retrieve "Pear" df_cell = df.loc[2, "Product"] print(df_cell) # will print "Pear" # Retrieve "Pear" df_cell_by_index = df.iloc[2, 0] print(df_cell_by_index) # will print "Pear"
DataFrame.loc and DataFrame.iloc are more flexible, general accessors, which can both be used to select arbitrarily sized portions of a DataFrame. DataFrame.at and DataFrame.iat, on the other hand, are both optimized for retrieving the value of a single cell, so the versions of our code using one of these functions will run faster. This will be especially noticeable with large DataFrames.
- Sentry BlogPython Performance Testing: A Comprehensive Guide
- Syntax.fmListen to the Syntax Podcast
- Sentry BlogLogging in Python: A Developer’s Guide
- CodecovPython - Codecov
- Listen to the Syntax Podcast
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
