In che modo l'innovazione nella tecnologia sta potenziando il settore dello sviluppo di app? 1

Come interrogare il tuo dataframe Panda

Nodo di origine: 1017694

Come interrogare il tuo dataframe Panda

La prospettiva di un Data Scientist sulle funzioni Python simili a SQL.


By Matteo Przybyla, Senior Data Scientist presso Favor Delivery



Foto di Bruce Hong on Unsplash [1].

Sommario

 
 

  1. Introduzione
  2. Condizioni multiple
  3. Unione su più colonne specifiche
  4. Sommario
  5. Riferimenti

Introduzione

 
 
Che tu stia passando da ingegnere/analista di dati o desideri diventare un data scientist più efficiente, eseguire query sul frame di dati può rivelarsi un metodo piuttosto utile per restituire le righe specifiche desiderate. È importante notare che esiste una funzione di query specifica per i panda, denominata in modo appropriato, query. Tuttavia, discuterò invece degli altri modi in cui puoi imitare l'esecuzione di query, il filtraggio e l'unione dei tuoi dati. Presenteremo scenari o domande comuni che potresti porre ai tuoi dati e, anziché SQL, lo faremo con Python. Nei paragrafi seguenti, delineerò alcuni semplici modi per interrogare le righe per il tuo dataframe panda con il linguaggio di programmazione Python.

Condizioni multiple

 
 



Dati di esempio. Schermata dell'autore [2].

 

In qualità di data scientist o analisti di dati, vogliamo restituire righe di dati specifiche. Uno di questi scenari è quello in cui desideri applicare più condizioni, tutte nella stessa riga di codice. Per mostrare il mio esempio, ho creato alcuni dati campione falsi relativi a nome e cognome, nonché il rispettivo sesso e data di nascita. Questi dati vengono visualizzati sopra nello screenshot.

Le condizioni multiple di esempio risponderanno essenzialmente a una domanda specifica, proprio come quando usi SQL. La domanda è: quale percentuale dei nostri dati è di sesso maschile? OR una persona nata tra il 2010 e il 2021.

Ecco il codice che risolverà questa domanda (ci sono alcuni modi per rispondere a questa domanda, ma ecco il mio modo specifico di farlo):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

Per visualizzare meglio questo codice, ho incluso anche questo screenshot dello stesso codice visto sopra, insieme all'output/risultato. Puoi anche applicare queste condizioni per restituire le righe effettive invece di ottenere la frazione o la percentuale di righe dal totale delle righe.



Codice delle condizioni. Schermata dell'autore [3].

 

Ecco l'ordine dei comandi che abbiamo eseguito:

  • Ritorna le righe con Male Gender
  • Includi il OR function |
  • Restituisci le righe di Birthdate > 2010 e 2021
  • Combinali tutti e poi dividi per il numero totale di righe

Come puoi vedere, questo codice è simile a qualcosa che vedresti in SQL. Personalmente penso che sia più semplice in Panda perché può contenere meno codice, pur essendo in grado di vedere visivamente tutto il codice in un unico punto, senza dover scorrere su e giù (ma questo formato è solo la mia preferenza).

Unione su più colonne specifiche

 
 



Risultato del dataframe unito. Schermata dell'autore [4].

 

Probabilmente abbiamo visto come unire i dataframe insieme in altri tutorial, quindi volevo aggiungere un approccio unico che non ho mai visto là fuori, ovvero l'unione di più colonne specifiche. In questo scenario, vogliamo unire due dataframe in cui due campi sono condivisi tra loro. Potresti dire che se ci sono ancora più colonne, questo metodo potrebbe essere ancora più utile.

Abbiamo il nostro primo dataframe, che è df, quindi uniamo le nostre colonne su un secondo dataframe, df2. Ecco il codice per ottenere il risultato atteso:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Per visualizzare meglio questa fusione e codice, ho presentato lo screenshot qui sotto. Vedi come appare il secondo dataframe di seguito, con il file First ed Last nomi, proprio come sono nel primo dataframe, ma con una nuova colonna, Numeric. Quindi, abbiamo colonne specifiche su cui volevamo unirci, restituendo le colonne GenderBirthdate, E la nuova Numeric anche la colonna. Le colonne sono un elenco di colonne, a cui viene assegnato un nome cols.



Unione di frame di dati. Schermata dell'autore [5].

 

Come puoi vedere, questo modo di unire i frame di dati è un modo semplice per ottenere gli stessi risultati che otterresti da una query SQL.

Sommario

 
 
In questo tutorial, abbiamo visto due domande o query comuni che avresti eseguito in SQL, ma invece le abbiamo eseguite con i dataframe panda in Python.

Per riassumere, ecco i due scenari con cui abbiamo lavorato:

  1. Restituzione della percentuale di righe sul set di dati totale da più condizioni
  2. Unione di più colonne specifiche per restituire un dataframe finale con una nuova colonna

Spero che tu abbia trovato il mio articolo interessante e utile. Non esitate a commentare qui sotto se siete d'accordo o in disaccordo con questi metodi. Perché o perché no? Questi possono certamente essere chiariti ulteriormente, ma spero di essere riuscito a far luce su alcuni dei modi in cui puoi usare Panda e Python invece di SQL. Grazie per aver letto!

Non esitate a controllare il mio profilo, Matt Przybylae altri articoli, oltre a contattarmi su LinkedIn.

Non sono affiliato con queste società.

 
Riferimenti

[1] Foto di Bruce Hong on Unsplash(2018)

[2] M. Przybyla, screenshot dei dati di esempio, (2021)

[3] M. Przybyla, screenshot del codice delle condizioni, (2021)

[4] M. Przybyla, screenshot del risultato del dataframe unito, (2021)

[5] M. Przybyla, screenshot della fusione dei dataframe, (2021)

 
Bio: Matteo Przybyla è Senior Data Scientist presso Favor Delivery e uno scrittore tecnico freelance, in particolare nella scienza dei dati.

Originale. Ripubblicato con il permesso.

Correlato:

Fonte: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Timestamp:

Di più da KDnuggets