Kaj nam je prinesla Panda 1.0

Kaj nam je prinesla Panda 1.0

9. januarja je bila izdana Pandas 1.0.0rc. Prejšnja različica knjižnice je 0.25.

Prva večja izdaja vsebuje veliko odličnih novih funkcij, vključno z izboljšanim samodejnim povzemanjem podatkovnih okvirov, več izhodnih formatov, novimi vrstami podatkov in celo novim dokumentacijskim mestom.

Vse spremembe si lahko ogledate tukaj, se bomo v članku omejili na majhen, manj tehnični pregled najpomembnejših stvari.

Knjižnico lahko namestite kot običajno z uporabo pip, a ker je v času pisanja Pandas 1.0 še vedno kandidat za javnost, boste morali izrecno navesti različico:

pip install --upgrade pandas==1.0.0rc0

Bodite previdni: ker je to velika izdaja, lahko posodobitev pokvari staro kodo!

Mimogrede, podpora za Python 2 je bila od te različice popolnoma ukinjena (kaj bi lahko bil dober razlog nadgradnja — pribl. prevod). Pandas 1.0 zahteva vsaj Python 3.6+, zato, če niste prepričani, preverite, katerega ste namestili:

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

$ python --version
Python 3.7.5

Najlažji način za preverjanje različice Pandas je ta:

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

Izboljšano samodejno povzemanje z DataFrame.info

Moja najljubša novost je bila posodobitev metode DataFrame.info. Funkcija je postala veliko bolj berljiva, zaradi česar je proces raziskovanja podatkov še lažji:

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

Izpis tabel v formatu Markdown

Enako prijetna novost je možnost izvoza podatkovnih okvirov v tabele Markdown z uporabo DataFrame.to_markdown.

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

To olajša objavo tabel na spletnih mestih, kot je Medium, z uporabo github gists.

Kaj nam je prinesla Panda 1.0

Novi tipi za nize in logične vrednosti

Izdaja Panda 1.0 je dodala tudi novosti eksperimentalno vrste. Njihov API se lahko še spremeni, zato ga uporabljajte previdno. Toda na splošno Pandas priporoča uporabo novih vrst, kjer je to smiselno.

Za zdaj je treba zasedbo izvesti izrecno:

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

Opazite, kako stolpec Dtip prikaže nove vrste − niz и bool.

Najbolj uporabna funkcija nove vrste nizov je možnost izbire samo stolpci vrstic iz podatkovnih okvirov. To lahko olajša razčlenjevanje besedilnih podatkov:

df.select_dtypes("string")

Prej stolpcev vrstic ni bilo mogoče izbrati brez izrecne navedbe imen.

Več o novih vrstah lahko preberete tukaj.

Hvala za branje! Celoten seznam sprememb, kot je bilo že omenjeno, si lahko ogledate tukaj.

Vir: www.habr.com

Dodaj komentar