Wat Pandas 1.0 ons heeft gebracht

Wat Pandas 1.0 ons heeft gebracht

Op 9 januari werd Pandas 1.0.0rc uitgebracht. De vorige versie van de bibliotheek is 0.25.

De eerste grote release bevat veel geweldige nieuwe functies, waaronder verbeterde automatische samenvatting van dataframes, meer uitvoerformaten, nieuwe gegevenstypen en zelfs een nieuwe documentatiesite.

Alle wijzigingen kunnen worden bekeken hier, in het artikel zullen we ons beperken tot een kleine, minder technische bespreking van de belangrijkste zaken.

U kunt de bibliotheek zoals gewoonlijk installeren met behulp van pit, maar aangezien Pandas 1.0 op het moment van schrijven nog steeds bestaat release candidate, moet u de versie expliciet opgeven:

pip install --upgrade pandas==1.0.0rc0

Let op: aangezien dit een grote release is, kan de update de oude code breken!

Overigens is de ondersteuning voor Python 2 sinds deze versie volledig stopgezet (wat een goede reden zou kunnen zijn update β€” ca. vertaling). Pandas 1.0 vereist minimaal Python 3.6+, dus als je het niet zeker weet, controleer dan welke je hebt geΓ―nstalleerd:

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

$ python --version
Python 3.7.5

De eenvoudigste manier om de Pandas-versie te controleren is als volgt:

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

Verbeterde automatische samenvatting met DataFrame.info

Mijn favoriete innovatie was de update van de methode DataFrame.info. De functie is veel leesbaarder geworden, waardoor het proces van gegevensverkenning nog eenvoudiger wordt:

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

Tabellen uitvoeren in Markdown-indeling

Een even prettige innovatie is de mogelijkheid om dataframes naar Markdown-tabellen te exporteren met behulp van DataFrame.to_markdown.

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

Dit maakt het veel eenvoudiger om tabellen op sites als Medium te publiceren met behulp van github gists.

Wat Pandas 1.0 ons heeft gebracht

Nieuwe typen voor strings en booleans

De Pandas 1.0-release heeft ook nieuwe toegevoegd experimenteel soorten. Hun API kan nog steeds veranderen, dus wees voorzichtig. Maar over het algemeen raadt Pandas aan om nieuwe typen te gebruiken waar dit zinvol is.

Voorlopig moet de cast expliciet worden gedaan:

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

Let op hoe de kolom D-type geeft nieuwe typen weer βˆ’ snaar ΠΈ bool.

De handigste eigenschap van het nieuwe stringtype is de mogelijkheid om te selecteren alleen rijkolommen uit dataframes. Dit kan het parseren van tekstgegevens veel eenvoudiger maken:

df.select_dtypes("string")

Voorheen konden rijkolommen niet worden geselecteerd zonder expliciet namen op te geven.

U kunt meer lezen over nieuwe typen hier.

Bedankt voor het lezen! De volledige lijst met wijzigingen, zoals reeds vermeld, kan worden bekeken hier.

Bron: www.habr.com

Voeg een reactie