introduzione
La trasformazione in funzione panda (Pitone) potrebbe essere un po' difficile da capire, soprattutto se proviene da a Distinguersi sfondo. Onestamente, la maggior parte dei data scientist non lo utilizza immediatamente nel proprio percorso di apprendimento.
Ma la funzione di trasformazione di Pandas è in realtà uno strumento piuttosto utile come data scientist!! È una potente funzionalità su cui puoi fare affidamento per l'ingegneria delle funzionalità in Chiodo.
Personalmente, Ho iniziato a usarlo quando cercavo di eseguire l'ingegneria delle funzioni in un hackathon, e sono rimasto piacevolmente sorpreso dalla velocità con cui ha funzionato la funzione Trasforma. Credo fermamente che trarrai beneficio dalla conoscenza e dall'utilizzo della funzione Trasforma e, così, Ho deciso di scrivere di lei in questo articolo.
Per apprendere le basi di Python e Panda per la scienza dei dati, dai un'occhiata a questi corsi popolari:
Sommario
- Qual è la funzione di trasformazione in Python??
- Perché la funzione di trasformazione è importante??
- Applica e trasforma la funzione in Python
1. Qual è la funzione di trasformazione in Python??
La funzione Transform di Python restituisce un frame di dati autoprodotto con valori trasformati dopo aver applicato la funzione specificata nel suo parametro. Questo frame di dati ha la stessa lunghezza dell'ultimo frame di dati.
Era molto da accettare, quindi lascia che te lo spieghi con un esempio.
Diciamo che vogliamo moltiplicare 10 per ogni elemento in un frame di dati:
Il frame di dati originale è simile a questo:
Questo è il frame di dati che otteniamo dopo aver applicato la funzione Transform di Python:
2. Perché la funzione di trasformazione di Python è importante??
La trasformazione è utile durante l'estrazione delle funzionalità. Come suggerisce il nome, estraiamo nuove funzioni da quelle esistenti. Comprendiamo l'importanza della funzione di trasformazione con l'aiuto di un esempio.
Qui, abbiamo un set di dati su un grande magazzino:
Possiamo vedere che ogni utente ha acquistato diversi prodotti con importi di acquisto diversi. Vorremmo sapere qual è l'importo medio di acquisto di ciascun utente. Questo ci aiuta a creare una nuova funzionalità in modo che il modello comprenda meglio la relazione.
Questo è l'output desiderato:
Ci sono diversi approcci per farlo:
- Utilizzo di Groupby seguito da unione ()
- Approccio alla funzione di trasformazione
Implementerò entrambi in questo articolo.
Metodo 1: uso di Groupby seguito da merge ():
Il primo approccio è usare raggruppare per per aggiungere i dati, quindi unisci nuovamente questi dati nel frame di dati originale usando la funzione di unione (). Facciamolo!
passo 1: importare le librerie e leggere il set di dati
passo 2: usa groupby per calcolare l'aggregato
Ecco una rappresentazione pittorica di come raggruppare per raccoglie la media di ogni utente:
passo 3: usando la funzione di unione () ricombinare
Ora la parte difficile. Come combiniamo questi dati con il frame di dati originale?? Useremo la funzione di unione () Per questo compito. Puoi leggere di più su join e merge in Python usando Pandas qui e qui, rispettivamente.
Il nostro frame di dati originale assomiglia a questo:
Questo fa sicuramente il nostro lavoro.. Ma è un processo in più fasi e richiede codice aggiuntivo per ottenere i dati nella forma di cui abbiamo bisogno. Questo processo in più fasi può consumare risorse su hackatones dove il tempo è un vincolo importante.
Possiamo risolverlo efficacemente usando la funzione di trasformazione in panda.
Messa a fuoco 2: usando la funzione di trasformazione Python
Questa è una funzione importante per creare funzioni. crema, Può cambiare le regole del gioco!
La funzione di trasformazione conserva lo stesso numero di elementi del set di dati originale dopo aver eseguito la trasformazione. Ci appoggeremo su un passaggio di linea super facile usando groupby seguito da una trasformazione:
La rappresentazione pittorica è la seguente:
Non potrebbe essere più facile, verità? Il frame di dati originale è simile a quello precedente nell'ultimo passaggio.
Il tempo necessario alla funzione di trasformazione per eseguire l'operazione di cui sopra è relativamente inferiore in un frame di dati di grandi dimensioni. Questo è un vantaggio significativo rispetto al primo approccio che abbiamo usato..
Permettetemi di dimostrare la funzione Trasforma utilizzando Pandas in Python.
Supponiamo di creare un insieme di dati casuali di 1,000,000 di righe e 3 colonne. Ora calcoliamo la media di una colonna in base a groupby (simile alla media di tutti gli acquisti basati su groupby user_id).
passo 1: importare le librerie
passo 2: creare il frame di dati
passo 3: usa la procedura di unione
passo 4: usa la funzione di trasformazione
Ciò mostra chiaramente che la funzione di trasformazione è molto più veloce dell'approccio precedente. Molto bene!
3. Differenza tra la funzione Applica e Trasforma in Python
Ora, diciamo che vogliamo creare una nuova colonna in base ai valori di un'altra colonna. Questo è il frame di dati con cui stiamo lavorando:
Con la funzione di applicazione:
Ecco come appare l'output usando la funzione Applica:
La funzione dell'app invia una copia completa del frame di dati per funzionare in modo che possiamo manipolare tutte le righe o le colonne contemporaneamente.
Con la funzione Trasforma:
Questa funzione non è possibile nella funzione Trasforma. Questo manipola solo una singola riga o colonna in base al valore dell'asse e non manipola un intero frame di dati. Perciò, possiamo usare la funzione Applica o Trasforma secondo i requisiti.
Note finali
La funzione Trasforma è molto utile quando sto cercando di manipolare rapidamente righe o colonne. Come ho detto precedentemente, questo è particolarmente utile negli hackathon quando il tempo è essenziale.
Se trovi più funzioni di Panda, Commenta e sarò felice di imparare e condividere!
Inizia a partecipare a concorsi per mostrare le tue abilità. Questo è un ottimo punto di partenza: Progetto di vendita del Black Friday.
Puoi registrarti al Piattaforma DataHack E prendi parte a fantastiche competizioni e competi con i migliori esperti di data science!!