Ottieni un valore da una cella di un DataFrame Pandas

Asad Riaz 30 gennaio 2023
  1. iloc per ottenere valore da una cella di un DataFrame di Pandas
  2. iat e at per ottenere il valore da una cella di un DataFrame di Pandas
  3. df['col_name'].values[] per ottenere il valore da una cella di un DataFrame Pandas
Ottieni un valore da una cella di un DataFrame Pandas

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.

Articolo correlato - Pandas DataFrame