dopo aver definito il DataFrame é possibile applicare dei filtri e ridurre le righe
(vedi python - Dataframe - matematici - somma filtrata)


i filtri si fanno




esempio: filtra righe Città Roma
df = df[df['Città'] == "Roma"]



esempio: filtra righe con valore > 50
df = df[df['Colonna'] > 50]
df = df[(df['Colonna1'] > 50) & (df['Colonna2'] > 50)] con due colonne condizioni



esempio: filtro Prodotto B
Dataframe iniziale
image012

il metodo filtra le righe con il Prodotto B utilizzando un metodo che analizza il testo contento .str.contains()

df[df["Prodotto"].str.contains("Prodotto B")]

image018



esempio: filtra righe per data
# filtro data > 1/1/2020
df = df[df['Colonna'] > pd.to_datetime('1/1/2020')]

# filtro data dopo 1/1/2020
df = df[df['Colonna'] < pd.to_datetime('1/1/2020')]

# filtro data tra 1/1/2020 e 1/1/2021
df = df[(df['Colonna'] > pd.to_datetime('1/1/2020')) & (df['Colonna'] < pd.to_datetime('1/1/2021'))]



esempio: filtra righe in una lista
# filtro con valori nella lista
df = df[df['Column1'].isin(['value1', 'value2', 'value3'])]

# filtro con valori non nella lista
df = df[~df['Column1'].isin(['value1', 'value2', 'value3'])]



esempio: filtra per il massio del fatturato ricreando il dataframe solo con Prodotto e Fatturato

df = df[["Prodotto","Fatturato"]][df.Fatturato == df["Fatturato"].max()]

image053





esempio: rimuovo da un dataframe tutti i testi che non sono numeri
df = pd.to_numeric(df, errors='coerce').dropna()

(vedi Python - funzioni / metodi - stringhe - conversione)



esempio: filtro multiplo per città e amici
df = xl("MiaTabella[#All]]", headers=True) creo dataframe della tabella
citta = df[df["colonna città"] == "Roma"] filtro righe con città Roma
amici = citta[citta["colonna amici"]=="scuola"] filtro di nuovo le righe con amici di scuola



esempio: filtro le righe che contengono un testo
df = xl("MiaTabella[#All]]", headers=True)
df = df[df["colonna"].str.contains("testo")] filtro le righe dove la colonna contiene il testo