Čo nám Pandas 1.0 priniesol

Čo nám Pandas 1.0 priniesol

9. januára boli vydané Pandy 1.0.0rc. Predchádzajúca verzia knižnice je 0.25.

Prvé veľké vydanie obsahuje mnoho skvelých nových funkcií, vrátane vylepšenej automatickej sumarizácie dátových rámcov, viac výstupných formátov, nové typy dát a dokonca aj novú dokumentačnú stránku.

Všetky zmeny je možné zobraziť tu, v článku sa obmedzíme na malú, menej technickú recenziu toho najdôležitejšieho.

Knižnicu môžete nainštalovať ako obvykle pomocou jadro, ale keďže v čase písania článku sú Pandy 1.0 stále release kandidát, budete musieť explicitne špecifikovať verziu:

pip install --upgrade pandas==1.0.0rc0

Buďte opatrní: keďže ide o hlavné vydanie, aktualizácia môže porušiť starý kód!

Mimochodom, podpora pre Python 2 bola od tejto verzie úplne ukončená (čo by mohol byť dobrý dôvod aktualizovať - približne. preklad). Pandas 1.0 vyžaduje aspoň Python 3.6+, takže ak si nie ste istí, skontrolujte, ktorý z nich máte nainštalovaný:

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

$ python --version
Python 3.7.5

Najjednoduchší spôsob, ako skontrolovať verziu Pandas, je tento:

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

Vylepšená automatická sumarizácia s DataFrame.info

Mojou obľúbenou inováciou bola aktualizácia metódy DataFrame.info. Funkcia sa stala oveľa čitateľnejšou, vďaka čomu je proces skúmania údajov ešte jednoduchší:

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

Výstup tabuliek vo formáte Markdown

Rovnako príjemnou novinkou je možnosť exportu dátových rámcov do tabuliek Markdown pomocou DataFrame.to_markdown.

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

Vďaka tomu je oveľa jednoduchšie publikovať tabuľky na stránkach ako Medium pomocou github gists.

Čo nám Pandas 1.0 priniesol

Nové typy pre reťazce a booleany

Vydanie Pandas 1.0 tiež pridalo nové experimentálne typy. Ich API sa môže ešte zmeniť, preto ho používajte opatrne. Vo všeobecnosti však Pandas odporúča používať nové typy všade tam, kde to má zmysel.

Nateraz je potrebné vykonať obsadenie explicitne:

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

Všimnite si, ako stĺpec Dtype zobrazuje nové typy − reťazec и bool.

Najužitočnejšou funkciou nového typu reťazca je možnosť výberu iba riadkové stĺpce z dátových rámcov. To môže výrazne uľahčiť analýzu textových údajov:

df.select_dtypes("string")

Predtým nebolo možné vybrať stĺpce riadkov bez explicitného zadania názvov.

O nových typoch si môžete prečítať viac tu.

Ďakujem za čítanie! Úplný zoznam zmien, ako už bolo spomenuté, si môžete pozrieť tu.

Zdroj: hab.com

Pridať komentár