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

Foto di Markus Spiske su Unsplash

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.

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…

Immagine di Autore

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).