Cosa ci ha portato Panda 1.0

Cosa ci ha portato Panda 1.0

Il 9 gennaio è stato rilasciato Pandas 1.0.0rc. La versione precedente della libreria è la 0.25.

La prima versione principale contiene molte nuove fantastiche funzionalità, tra cui un riepilogo automatico migliorato dei frame di dati, più formati di output, nuovi tipi di dati e persino un nuovo sito di documentazione.

Tutte le modifiche possono essere visualizzate qui, nell'articolo ci limiteremo ad un piccolo ripasso meno tecnico delle cose più importanti.

È possibile installare la libreria come al solito utilizzando seme, ma dal momento che mentre scrivo Pandas 1.0 è ancora release candidate, dovrai specificare esplicitamente la versione:

pip install --upgrade pandas==1.0.0rc0

Attenzione: trattandosi di una major release, l'aggiornamento potrebbe rompere il vecchio codice!

A proposito, il supporto per Python 2 è stato completamente interrotto da questa versione (quale potrebbe essere una buona ragione aggiornare - ca. traduzione). Pandas 1.0 richiede almeno Python 3.6+, quindi se non sei sicuro, controlla quale hai installato:

$ pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

$ python --version
Python 3.7.5

Il modo più semplice per verificare la versione di Panda è questo:

>>> import pandas as pd
>>> pd.__version__
1.0.0rc0

Riepilogo automatico migliorato con DataFrame.info

La mia innovazione preferita è stata l'aggiornamento del metodo DataFrame.info. La funzione è diventata molto più leggibile, rendendo il processo di esplorazione dei dati ancora più semplice:

>>> df = pd.DataFrame({
...:   'A': [1,2,3], 
...:   'B': ["goodbye", "cruel", "world"], 
...:   'C': [False, True, False]
...:})
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   A       3 non-null      int64
 1   B       3 non-null      object
 2   C       3 non-null      object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes

Output di tabelle in formato Markdown

Un'innovazione altrettanto piacevole è la possibilità di esportare dataframe nelle tabelle Markdown utilizzando DataFrame.to_markdown.

>>> df.to_markdown()
|    |   A | B       | C     |
|---:|----:|:--------|:------|
|  0 |   1 | goodbye | False |
|  1 |   2 | cruel   | True  |
|  2 |   3 | world   | False |

Ciò rende molto più semplice pubblicare tabelle su siti come Medium utilizzando github gists.

Cosa ci ha portato Panda 1.0

Nuovi tipi per stringhe e booleani

Anche la versione Panda 1.0 ha aggiunto nuove funzionalità sperimentale tipi. La loro API potrebbe ancora cambiare, quindi usala con cautela. Ma in generale, Panda consiglia di utilizzare nuovi tipi ovunque abbia senso.

Per ora, il cast deve essere fatto esplicitamente:

>>> B = pd.Series(["goodbye", "cruel", "world"], dtype="string")
>>> C = pd.Series([False, True, False], dtype="bool")
>>> df.B = B, df.C = C
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   A       3 non-null      int64
 1   B       3 non-null      string
 2   C       3 non-null      bool
dtypes: int64(1), object(1), string(1)
memory usage: 200.0+ bytes

Nota come la colonna tipo D visualizza nuovi tipi − stringa и bool.

La caratteristica più utile del nuovo tipo di stringa è la possibilità di selezionare solo colonne di riga dai frame di dati. Ciò può rendere l'analisi dei dati di testo molto più semplice:

df.select_dtypes("string")

In precedenza, non era possibile selezionare le colonne delle righe senza specificare esplicitamente i nomi.

Puoi leggere di più sui nuovi tipi qui.

Grazie per aver letto! L'elenco completo delle modifiche, come già accennato, può essere visualizzato qui.

Fonte: habr.com

Aggiungi un commento