Come estendere i DataFrames di Pandas con metodi personalizzati per aumentare la funzionalità e la leggibilità del codice
Espandere i DataFrames di Pandas con metodi personalizzati per potenziare la funzionalità e rendere il codice più leggibile
Una guida passo-passo per estendere i DataFrames di pandas con metodi personalizzati, inclusi esempi completi su come implementare estensioni per probabilità condizionata e valori attesi
Introduzione
Il Problema
I data frame di pandas hanno una vasta gamma di funzioni incorporate, ma ci sono sempre nuovi modi in cui i programmatori Python desiderano interrogare e trasformare i loro dati.
L’Opportunità
Un approccio comune è scrivere funzioni e passare i data frame come parametri, ma questo può diventare complicato, mentre l’approccio ottimale sarebbe aggiungere nuovi metodi e proprietà direttamente alle classi di pandas.
La Via Avanti
È molto facile estendere la funzionalità delle classi in pandas o in qualsiasi altra libreria con metodi personalizzati e proprietà, producendo codice che è facile da leggere, capire e riutilizzare.
Background
Stavo scrivendo del codice per una libreria di inferenza causale che coinvolgeva alcune operazioni complesse sui dati e le costanti chiamate alle funzioni rendevano il codice difficile da leggere e capire.
- Codifica Byte-Pair per principianti
- TimesNet Il più recente avanzamento nella previsione delle serie temporali
- Non dimenticare gli intervalli di confidenza per il tuo prodotto di ML
Ho avuto l’idea che se i data frame di pandas facessero le stesse cose per cui stavo scrivendo funzioni in modo nativo, il codice diventerebbe pulito, semplice e facile da capire ed è stato solo un piccolo passo da lì per scoprire come estendere pandas da solo…
La Soluzione
La prima funzione che volevo implementare era la probabilità e la probabilità condizionata. Consideriamo il seguente dataset…
Questo è un dataset sintetico che cattura la relazione tra formazione, competenze e reddito, con ogni riga che rappresenta un individuo che ha ricevuto formazione (o meno), acquisito competenze (o meno) e aumentato il proprio reddito (o meno).