Ottieni l'indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione in Pandas

Suraj Joshi 30 gennaio 2023
  1. Semplice operazione di indicizzazione per ottenere l’indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione
  2. Metodo np.where() per ottenere l’indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione
  3. pandas.DataFrame.query() per ottenere gli indici di tutte le righe la cui colonna specifica soddisfa una determinata condizione
Ottieni l'indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione in Pandas

Possiamo ottenere l’indice di tutte le righe la cui particolare colonna soddisfa una data condizione in Pandas usando una semplice operazione di indicizzazione. Potremmo anche trovare i loro indici usando il metodo where() dal pacchetto NumPy e il metodo query() dell’oggetto DataFrame.

Semplice operazione di indicizzazione per ottenere l’indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione

L’uso di una semplice operazione di indicizzazione può svolgere il compito di ottenere l’indice delle righe la cui particolare colonna soddisfa la condizione data.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = df[df["Sales"] >= 300].index.tolist()
print(reqd_Index)

Produzione:

[1, 2, 4, 5]

Qui, df['Sales']>=300 fornisce una serie di valori booleani i cui elementi sono True se la loro colonna Sales ha un valore maggiore o uguale a 300.

Possiamo recuperare l’indice delle righe il cui valore Sales è maggiore o uguale a 300 utilizzando df[df['Sales']>=300].index.

Infine, il metodo tolist() converte tutti gli indici in una lista.

Metodo np.where() per ottenere l’indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione

np.where() accetta la condizione come input e restituisce gli indici degli elementi che soddisfano la condizione data. Quindi, potremmo usare np.where() per ottenere gli indici di tutte le righe la cui particolare colonna soddisfa la condizione data.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

Produzione:

[array([1, 2, 4, 5])]

Questo produce gli indici di tutte le righe i cui valori nella colonna Sales sono maggiori o uguali a 300.

pandas.DataFrame.query() per ottenere gli indici di tutte le righe la cui colonna specifica soddisfa una determinata condizione

pandas.DataFrame.query() restituisce DataFrame risultante dall’espressione di query fornita. Ora, possiamo usare l’attributo index di DataFrame per restituire gli indici di tutte le righe la cui particolare colonna soddisfa la condizione data.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_index = df.query("Sales == 300").index.tolist()
print(reqd_index)

Produzione:

[1, 4, 5]

Restituisce l’lista degli indici di tutte le righe la cui particolare colonna soddisfa la condizione data Sales == 300.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Pandas DataFrame

Articolo correlato - Pandas DataFrame Row

Articolo correlato - Pandas DataFrame Column