Como obter um valor a partir de uma célula de um Pandas DataFrame

Asad Riaz 30 janeiro 2023 1 novembro 2020
  1. iloc para obter valor de uma célula de um Pandas DataFrame
  2. O iat e o at para obter valor de uma célula de um Pandas DataFrame
  3. df['col_name'].values[] para obter valor de uma célula de um Dataframe de Pandas
Como obter um valor a partir de uma célula de um Pandas DataFrame

Introduziremos métodos para obter o valor de uma célula em Pandas DataFrame. Eles incluem iloc e iat. O ['col_name'].values[] é também uma solução especialmente se não quisermos obter o tipo de retorno como pandas.Series.

iloc para obter valor de uma célula de um Pandas DataFrame

O iloc é a maneira mais eficiente de obter um valor da célula de um Pandas DataFrame. Digamos, temos um DataFrame com os nomes das colunas como price e stock, e queremos obter um valor da 3ª fileira para verificar o preço e a disponibilidade de estoque.

Primeiro, precisamos acessar as linhas e depois o valor utilizando o nome da coluna.

Códigos de exemplo:

# python 3.x
import pandas as pd
df = pd.DataFrame({
    'name':
    ['orange','banana','lemon','mango','apple'],
    'price':
    [2,3,7,21,11],
    'stock':
    ['Yes','No','Yes','No','Yes']
})
print(df.iloc[2]['price'])
print(df.iloc[2]['stock'])

Resultado:

7
Yes

O iloc obtém linhas (ou colunas) em determinadas posições no índice. É por isso que só é necessário um número inteiro como argumento. E loc recebe linhas (ou colunas) com rótulos particulares do índice.

O iat e o at para obter valor de uma célula de um Pandas DataFrame

O iat e o at são acessos rápidos para que os escalares obtenham valor de uma célula de um Pandas DataFrame.

Códigos de exemplo:

# python 3.x
import pandas as pd
df = pd.DataFrame({
    'name':
    ['orange','banana','lemon','mango','apple'],
    'price':
    [2,3,7,21,11],
    'stock':
    ['Yes','No','Yes','No','Yes']
})
print(df.iat[0,0])
print(df.at[1,'stock'])

Resultado:

orange
No

Para obter a última entrada de linha, utilizaremos at[df.index[-1],'stock'].

Códigos de exemplo:

# python 3.x
import pandas as pd
df = pd.DataFrame({
    'name':
    ['orange','banana','lemon','mango','apple'],
    'price':
    [2,3,7,21,11],
    'stock':
    ['Yes','No','Yes','No','Yes']
})
print(df.at[df.index[-1],'stock'])

Resultado:

Yes

df['col_name'].values[] para obter valor de uma célula de um Dataframe de Pandas

Os valores da coluna df['col_name'].values[] irão primeiro converter a coluna datafarme em array 1-D e depois acessar o valor no índice desse array:

Códigos de exemplo:

# python 3.x
import pandas as pd
df = pd.DataFrame({
    'name':
    ['orange','banana','lemon','mango','apple'],
    'price':
    [2,3,7,21,11],
    'stock':
    ['Yes','No','Yes','No','Yes']
})
print(df['stock'].values[0])

Resultado:

Yes

Não retorna um pandas.Series, e é o mais simples de usar.

Artigo relacionado - Pandas DataFrame