La mia linea preferita di codice Python

Sì, ho una riga "preferita" di codice Python perché capita che ci sia qualcosa che faccio così spesso (sia nella mia parola che nella vita accademica) che la sua eleganza non solo mi fa risparmiare tempo, ma fa anche ciò di cui ho bisogno.

I DataFrame di Pandas sono un modo particolarmente buono per gestire i dati tabulari in Python. Spesso, nella scienza dei dati, i dati vengono manipolati, non solo uno o due valori, ma ogni valore in una o più colonne. Ad esempio, quando si apportano correzioni.

È qui che entra in gioco la mia riga di codice preferita.

Ecco un esempio con alcuni dati errati:

Inizierò con la makecolonna; i valori in esso sono incoerenti e ho bisogno di rendere tutti i makevalori iniziali in maiuscolo. Senza ulteriori indugi, ecco la mia riga di codice preferita (supponendo che i dati siano caricati in un DataFrame denominato my_data_df:

my_data_df[‘make’] = my_data_df[‘make’].apply(lambda x: x.title())

Guarda, tutto carino e corretto.

Rompendo un po 'questo, quello che ho fatto è usare la applyfunzione DataFrame per iterare attraverso ogni valore nella colonna specificata ( make) e per ogni cella, ho applicato una semplice funzione di stringa ( title) per convertire quel valore in maiuscolo (cap iniziale). Nella lambdafunzione, xè il valore che sto cambiando.

Estendere la funzionalità

Un'altra cosa che la rende la mia linea di codice preferita è che è una linea versatile, che può essere sia estesa che generalizzata. Quest'ultimo esempio non è stato fatto del tutto correttamente, vero? BMW è un sigillo che sta per Bayerische Motoren Werke e non dovrebbe essere il caso del titolo ma tutto il tappo.

Posso farlo con la mia riga di codice preferita? Oh sì, posso.

my_data_df[‘make’] = my_data_df[‘make’].apply(lambda x: x.title() if x != ‘bmw’ else x.upper())

Quello che ho fatto è estendere la lambdafunzione originale aggiungendo un if else clauseper gestire la BMW. Detto chiaramente, quella riga di codice ora dice:

Per righe molto nella makecolonna, convertilo in maiuscolo se il valore non lo è bmw, altrimenti rendilo tutto maiuscolo.

Non male per una singola riga di codice.

Generalizza il codice

Come ho detto all'inizio, uso questa riga di codice (o qualche variazione in essa) molto spesso. In pratica, non lo riscrivo ogni volta, per quanto possa essere divertente. Invece, ho generalizzato le variazioni usando le funzioni Python. Guarda la daycolonna: i giorni della settimana non sono coerenti e vorrei che tutti i giorni fossero i giorni completamente scritti in maiuscolo. Ma più in generale, ho una o più parole "sbagliate" che voglio rendere "giuste". Ora la singola riga di codice per modificare una di queste situazioni, dire weda Wednesday, è abbastanza semplice:

my_data_df[‘day’] = my_data_df[‘day’].apply(lambda x: ‘Wednesday’ if x == ‘wed’ else x.title())

Proprio come l'ultimo esempio, ho inserito una condizione nella lamdafunzione, ma questa volta ho appena controllato se il valore è wede, in tal caso, lo cambio in Wednesday, altrimenti, impostalo come cap ( else x.title()).

È carino, ma è richiesta più di una modifica e mi piacerebbe creare una funzione che possa cambiare qualsiasi parola in qualsiasi altra parola.

Questo codice ovviamente non include la mia linea preferita, ma verrà usato dalla mia linea preferita. La correct_wordfunzione è una funzione generale che prima converte xin maiuscolo e poi se xè la parola sbagliata, restituisce la parola giusta (in sostanza rendendo x la parola giusta), altrimenti restituisce x. (Non vuoi cambiare la parola a meno che non sia la parola sbagliata.) Se ricomincio tutto da capo con i miei dati originali, ora posso cambiare tutto abbastanza facilmente.

Si noti come la lambdafunzione ora chiama semplicemente la mia correct_wordfunzione personalizzata . Abbastanza semplice. (Lo so, lo so, questa non è più una singola riga di codice, ma sto ancora usando la mia riga preferita e sto mostrando come usarla più in generale.)

So che ci sono linee di codice più potenti, e forse anche singole righe di codice più interessanti, ma nessuna di queste è la mia preferita. Questo è. Spero ti piaccia.

Suggested posts

Come eseguire i plug-in ChatGPT gratuitamente utilizzando Langchain

Come eseguire i plug-in ChatGPT gratuitamente utilizzando Langchain

Devi aver sentito parlare di tutti i nuovi potenti plug-in ChatGPT come Browser, Code Interpreter ecc. Ma c'è un problema, l'accesso ai plug-in è limitato a una lista di attesa e quindi molti non hanno accesso ad essa.

Le mie risorse di codifica più utilizzate

Le mie risorse di codifica più utilizzate

Questa settimana ho ricevuto un'e-mail da un membro della mailing list quotidiana. Volevano sapere: quali risorse visiti giornalmente, settimanalmente e mensilmente? Ottima domanda! Sono felice di provare a condividere alcune informazioni sul mio flusso di lavoro e sulle migliori risorse che utilizzo.

Related posts

Due anni di design: il buono, il brutto e il cattivo...

Due anni di design: il buono, il brutto e il cattivo...

"Ehi Siri, suona Me Dive di Olivia Dean." Era maggio 2021 quando ho iniziato il mio tirocinio presso la Future Academy Africa ad Akure, in Nigeria.

Finanziare la rimozione del carbonio nell'anno fiscale 24

La ripartizione delle richieste di stanziamenti di Carbon180 in tutti i percorsi

Finanziare la rimozione del carbonio nell'anno fiscale 24

Di Alyson Lee, consulente per gli affari governativi Il processo di stanziamento annuale del governo federale è fondamentale per i nostri sforzi per finanziare la rimozione dell'anidride carbonica (CDR). Ogni anno, Carbon180 invia richieste a vari uffici congressuali per aiutare a guidare dove fluiranno i dollari del prossimo anno.

L'assassinio di Jordan Neely e il problema del razzismo "patriottico".

Gli Stati Uniti possono fare il passo essenziale per non equiparare il comportamento razzista all'essere un buon americano?

L'assassinio di Jordan Neely e il problema del razzismo "patriottico".

[Avviso di attivazione: questo saggio include schermate di persone che elogiano l'assassino di Jordan Neely.] I funzionari delle forze dell'ordine hanno finalmente - e forse con riluttanza - accusato Daniel Penny, l'uomo che ha soffocato Jordan Neely fino alla sua morte, per quell'omicidio.

3 modi comprovati per migliorare la tua abilità di scrittura

I vantaggi della scrittura e le strategie per aiutarti a farlo

3 modi comprovati per migliorare la tua abilità di scrittura

Nel 2022, con il rilascio di GPT-3, l'abilità di scrittura sembra diventare meno importante. Con l'intelligenza artificiale, anche le persone con una scrittura scadente possono generare personale di qualità.