Pandas 1.0 porta grandi cambiamenti di rottura

Pandas, la libreria di analisi dei dati per Python, ha finalmente raggiunto una release candidate 1.0. Pandas 1.0 rimuove una grande quantità di funzionalità deprecate e richiede Python 3.6 o superiore. 

Pandas è stato creato per lavorare facilmente con i dati in formati strutturati, come tabelle, matrici e dati di serie temporali. Pandas eclissa gran parte delle funzionalità dei dataframe di R e funziona bene con altre librerie di calcolo scientifico nel mondo Python.

Con Pandas 1.0, i creatori di Pandas introducono una serie di modifiche rivoluzionarie che sono in lavorazione da un po 'di tempo. Ecco una carrellata di quelle più significative e come gestirle in futuro.

Pandas richiede Python 3.6.1 o versioni successive

Il più grande cambiamento in Pandas 1.0 è l'eliminazione del supporto per tutte le versioni di Python precedenti a Python 3.6.1. I panda hanno abbandonato il supporto per Python 2 e si sono impegnati esclusivamente in Python 3 a partire dal 2019, quindi questo è principalmente un perfezionamento di una politica esistente.

Il progetto ha anche una nuova politica di supporto per le future versioni di Pandas. Qualsiasi calo del supporto per una versione di Python verrà implementato nelle nuove principali versioni di Pandas (2.0, 3.0, ecc.). Le versioni secondarie depreceranno le funzionalità, ma non le rimuoveranno; le versioni principali rimuoveranno le funzionalità.

Il nuovo valore NA di Pandas

Le versioni precedenti di Pandas utilizzavano tipi diversi per rappresentare i dati mancanti, a seconda del tipo di contenitore: uno per i tipi datetime, uno per gli oggetti, ecc. Tutti questi sono stati uniti in un unico tipo di dati mancanti chiamato NA. Al momento, il supporto per NA è limitato a pochi tipi di oggetti ed è considerato sperimentale, quindi non dovrebbe ancora essere utilizzato in produzione. 

Incompatibilità API

A causa del numero di modifiche apportate a Pandas 1.0, alcune API di Pandas sono ora incompatibili con le versioni precedenti. Ciò include modifiche ai comportamenti di molti elementi comuni:

  • Il DataFrame tipo
  • pandas.array
  • arrays.IntegerArray

Molte di queste incompatibilità genereranno avvertimenti, ma è meglio testare gli script Panda esistenti fianco a fianco con le loro controparti Pandas 1.0 per vedere come funzionano.

Funzionalità deprecate in Pandas 1.0

La documentazione di Pandas elenca tutte le funzionalità che saranno deprecate ma non rimosse in Pandas 1.0. Alcuni di essi sono stati semplicemente rinominati o riorganizzati, come il modulo di test, mentre altri cambiano l'uso di alcuni parametri di funzione. In un paio di casi, ad esempio con Series.item()e Index.item(), le funzionalità sono state salvate dalla deprecazione e continueranno a essere disponibili.

Se si utilizza una versione di Panda precedente a 0,25, i creatori di Panda consiglia la migrazione a Panda 0,25  prima , assicurandosi che tutti si comporta codice Panda-dipendenti come previsto,  quindi la migrazione a Panda 1.0. Questo per garantire che qualsiasi codice che utilizza funzionalità deprecate venga contrassegnato.

Funzionalità rimosse in Pandas 1.0

Alcune funzionalità chiave di Pandas sono state rimosse del tutto in Pandas 1.0:

  • SparseSeriese SparseDataFrame. Usa Serieso DataFramecon l' sparsevaluesopzione invece.
  • Registrazione dell'unità Matplotlib. Questo per evitare che Matplotlib venga influenzato durante l'importazione di Panda.
  • Molte altre funzionalità precedentemente deprecate.

Ancora una volta, questo è un altro motivo per testare il candidato alla versione di Pandas 1.0 fianco a fianco con la tua installazione Panda esistente e assicurarti che i tuoi script si comportino come previsto.

Installazione di Pandas 1.0

Pandas 1.0 può essere installato direttamente in Python tramite il gestore di pacchetti Pip, digitando pip install pandas. Pandas 1.0 è anche disponibile come parte della distribuzione Anaconda Python per il calcolo scientifico.

In tutti i casi, è meglio installare Pandas in un ambiente virtuale, soprattutto se si desidera eseguire i test degli script Pandas 1.0 fianco a fianco con le loro controparti della versione precedente.