5.7. DataFrame At
.at[row, col]
- fancy indexing.iat[row, col]
- integer at (no fancy indexing)Access a single value for a row/column pair by integer position
Use iat if you need to get or set a single value in a DataFrame or Series
Pandas Select Cell:

5.7.1. SetUp
import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame(
columns = ['Morning', 'Noon', 'Evening', 'Midnight'],
index = pd.date_range('1999-12-30', periods=7),
data = np.random.randn(7, 4))
df
Morning Noon Evening Midnight
1999-12-30 1.764052 0.400157 0.978738 2.240893
1999-12-31 1.867558 -0.977278 0.950088 -0.151357
2000-01-01 -0.103219 0.410599 0.144044 1.454274
2000-01-02 0.761038 0.121675 0.443863 0.333674
2000-01-03 1.494079 -0.205158 0.313068 -0.854096
2000-01-04 -2.552990 0.653619 0.864436 -0.742165
2000-01-05 2.269755 -1.454366 0.045759 -0.187184
5.7.2. Get value at specified row/column pair
First argument is column
Second argument is row
df.iat[0,0]
np.float64(1.764052345967664)
df.iat[1,0]
np.float64(1.8675579901499675)
df.iat[0,1]
np.float64(0.4001572083672233)
5.7.3. Get value from row
loc
returns Series
df.loc['2000-01-01'].iat[1]
np.float64(0.41059850193837233)
5.7.4. Set value at a position
df.iat[0,0] = pd.NA
df
Morning Noon Evening Midnight
1999-12-30 NaN 0.400157 0.978738 2.240893
1999-12-31 1.867558 -0.977278 0.950088 -0.151357
2000-01-01 -0.103219 0.410599 0.144044 1.454274
2000-01-02 0.761038 0.121675 0.443863 0.333674
2000-01-03 1.494079 -0.205158 0.313068 -0.854096
2000-01-04 -2.552990 0.653619 0.864436 -0.742165
2000-01-05 2.269755 -1.454366 0.045759 -0.187184