Python: filtrare i dati

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

python filtrare i dati di un dataframe

Filtrare le liste

filter()

Questa utilissima funzione con la sintassi filter(f,v) estrae da una sequenza v tutti gli elementi x per cui f(x) è vera e restituisce come risultato la lista che consiste di tutti questi elementi.
Dopo aver definito:
def pari (x): return x%2==0
possiamo estrarre tutti i numeri pari da una lista:

def pari (x): return x%2==0
v= list(range(1,21))
print(v)
x = list(filter(pari,v))
print(x)

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

Nota:

Come possiamo vedere la funzione range() ha creato una lista di numeri in sequenza da 0 a 9, senza doverli definire uno ad uno. La chiamata alla funzione list() serve per il casting, cioè la conversione dell’oggetto restituito da range() in una lista.

Similmente da un elenco di parole possiamo estrarre le parole che hanno lunghezza ≥ 5:

v=['Roma','Ferrara','Bologna','Pisa']
x= list(filter((lambda x: len(x) > 4),v))
x

Output:

[‘Ferrara’, ‘Bologna’]

Filtrare i dataframe

Vedremo ora vari metodi per filtrare i dataframe in Python, utilizzando la libreria Pandas. Filtrare dei dati è una delle operazioni di manipolazione dei dati più frequenti. È simile alla clausola WHERE in SQL ,necessaria per selezionare righe specifiche in base ad alcune condizioni. In termini di velocità, Python ha un modo efficiente per eseguire la selezione e l’aggregazione. Pandas è un’ottima libreria per le attività di gestione dei dati. Pandas è stata costruita sopra il pacchetto numpy che è stato scritto in linguaggio C, che è un linguaggio di basso livello. Quindi la manipolazione dei dati, utilizzando Pandas, costituisce un modo rapido ed efficiente per gestire set di dati di grandi dimensioni.

Esempi di selezione dei dati

È uno dei passaggi più iniziali della preparazione dei dati per la modellazione predittiva o qualsiasi progetto di reporting.

  • Seleziona tutti i clienti attivi i cui conti sono stati aperti dopo il 1 gennaio 2020
  • Estrai i dettagli di tutti i clienti che hanno effettuato più di 3 transazioni negli ultimi 6 mesi
  • Recupera le informazioni dei dipendenti che hanno trascorso più di 3 anni nell’organizzazione e hanno ricevuto il punteggio più alto negli ultimi 2 anni.
  • Analizza i dati sui reclami e identifica i clienti che hanno presentato più di 5 reclami nell’ultimo anno.
  • Estrarre i dettagli delle città metropolitane in cui il reddito pro capite è superiore a 40K Euro.
Ti potrebbe interessare anche:  Geometria analitica: esercizi svolti sulla parabola

Importazione dei dati

Utilizzeremo il set di dati contenente il rapporto di rendimento degli ultimi 30 giorni, per questo sito esportato da Google Search Console.

Google Search Console è un servizio gratuito offerto da Google che ti consente di monitorare e gestire la presenza del tuo sito nei risultati della Ricerca Google

Sono, per ogni “query” ( ricerca eseguita sul sito), disponibili le seguenti metriche:

  • Impressioni. La frequenza con cui un utente ha visto un link al tuo sito su Google.
  • Click.  Ogni clic che reindirizza l’utente a una pagina esterna alla Ricerca Google, viene conteggiato come un clic.
  • Posizione (media). Un ranking relativo della posizione del tuo link su Google, dove 1 è la posizione più alta, 2 è quella successiva e così via.
  • Percentuale di clic. Il calcolo di clic / impressioni.

Questo set di dati ha 1000 righe e 4 colonne. Per importare il set di dati, useremo la funzione read_csv( )del pacchetto Pandas.

I nomi delle colonne sono: “Query più frequenti”,”Clic”,”Impressioni”,”CTR”,”Posizione”.

import pandas as pd
df = pd.read_csv(“Query.csv”, usecols=range(0,5))
print(df)
Output:

python filtrare i dati

Filtriamo ora i dati.

Siamo interessati a sapere quali query hanno portato ad un numero di clic maggiore o uguale di 600:

Primo metodo:

ESEMPIO 1:

import pandas as pd
df = pd.read_csv("Query.csv", usecols=range(0,5))
newdf = df[(df.Clic >= 600)]
newdf.head()
Output:
python filtrare i dati di un dataframe
ESEMPIO 2:
Estrarre le query che hanno avuto più di 100 clic e che hanno condotto ad una pagina del sito con posizione media nella SERP minore di 4.
import pandas as pd
df = pd.read_csv("Query.csv", usecols=range(0,5))
newdf = df[(df.Clic >= 100) & (df.Posizione < 4)]
newdf.head()
Output:
  1. I dati filtrati vengono archiviati su un nuovo frame di dati chiamato newdf.
  2. Il simbolo si &riferisce alla condizione AND che significa soddisfare entrambi i criteri.
  3. Questa parte di codice (df.Clic >= 100) & (df.Posizione < 4)restituisce True/False. True dove la condizione corrisponde e False dove la condizione non è valida. Successivamente viene passato all’interno di df e restituisce tutte le righe corrispondenti a True.
Ti potrebbe interessare anche:  Python: filtrare i dati (parte II)

Condizione OR : soddisfa un criterio oppure l’altro:

import pandas as pd
df = pd.read_csv("Query.csv", usecols=range(0,5))
newdf = df[(df.Clic == 0) | (df.Posizione >24)]
newdf.head()




Secondo metodo : La funzione Query 

In Pandas, ci sono diversi modi per eseguire selezioni. Il codice sopra può anche essere riscritto come mostrato di seguito. Questo metodo è elegante e più leggibile e non è necessario menzionare il nome del dataframe ogni volta che si specificano colonne .

import pandas as pd
df = pd.read_csv("Query.csv", usecols=range(0,5))
newdf = df.query('Clic >= 100 & Posizione < 4')
newdf.head()
Terzo metodo : La funzione loc
loc è un’abbreviazione del termine di posizione . Tutti questi 3 metodi restituiscono lo stesso output.
È solo un modo diverso di filtrare le righe.
import pandas as pd
df = pd.read_csv("Query.csv", usecols=range(0,5))
newdf = df.loc[(df.Clic >= 100) & (df.Posizione < 4)]
newdf.head()

[elementor-template id=”12586″]

[no_toc]

(619)

PubblicitàPubblicità