HOWTO · Pandas

Ottieni un valore da una cella di un DataFrame Pandas

Questo tutorial mostra come ottenere un valore da una cella di un dataframe Pandas usando i metodi iloc, iat, at, values[].

In questa pagina

Introdurremo metodi per ottenere il valore di una cella in Pandas DataFrame. Includono iloc e iat. ['col_name'].values[] è anche una soluzione soprattutto se non vogliamo ottenere il tipo restituito come pandas.Series.

iloc per ottenere valore da una cella di un DataFrame di Pandas

iloc è il modo più efficiente per ottenere un valore dalla cella di un DataFrame di Pandas. Supponiamo di avere un DataFrame con i nomi delle colonne come price e stock e di voler ottenere un valore dalla terza riga per controllare il prezzo e la disponibilità delle scorte.

Innanzitutto, dobbiamo accedere alle righe e quindi al valore utilizzando il nome della colonna.

Codici di esempio:

# 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"])

Produzione:

7
Yes

iloc ottiene righe (o colonne) in posizioni particolari nell’indice. Ecco perché richiede solo un numero intero come argomento. E loc ottiene righe (o colonne) con le etichette date dall’indice.

iat e at per ottenere il valore da una cella di un DataFrame di Pandas

iat e at sono accessi rapidi per gli scalari per ottenere il valore da una cella di un DataFrame di Pandas.

Codici di esempio:

# 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"])

Produzione:

orange
No

Per ottenere l’ultima voce di riga, useremo at[df.index[-1],'stock'].

Codici di esempio:

# 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"])

Produzione:

Yes

df['col_name'].values[] per ottenere il valore da una cella di un DataFrame Pandas

df['col_name'].values[] convertirà prima la colonna datafarme in un array 1-D, quindi accederà al valore all’indice di quell’array:

Codici di esempio:

# 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])

Produzione:

Yes

Non restituisce un pandas.Series ed è il più semplice da usare.