Como obter um valor a partir de uma célula de um Pandas DataFrame
-
iloc
para obter valor de uma célula de um PandasDataframe
-
O
iat
e oat
para obter valor de uma célula de um PandasDataframe
-
df['col_name'].values[]
para obter valor de uma célula de um Dataframe de Pandas
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.