Ką mums atnešė Pandas 1.0

Ką mums atnešė Pandas 1.0

Sausio 9 d. buvo išleista Pandas 1.0.0rc. Ankstesnė bibliotekos versija yra 0.25.

Pirmajame dideliame leidime yra daug puikių naujų funkcijų, įskaitant patobulintą automatinį duomenų kadrų apibendrinimą, daugiau išvesties formatų, naujus duomenų tipus ir net naują dokumentacijos svetainę.

Visus pakeitimus galima peržiūrėti čia, straipsnyje apsiribosime nedidele, ne tokia technine svarbiausių dalykų apžvalga.

Biblioteką galite įdiegti kaip įprasta pieputis, bet kadangi rašymo metu Pandas 1.0 vis dar yra Release Candidate, turėsite aiškiai nurodyti versiją:

pip install --upgrade pandas==1.0.0rc0

Būkite atsargūs: kadangi tai yra pagrindinis leidimas, naujinimas gali pažeisti seną kodą!

Beje, nuo šios versijos Python 2 palaikymas buvo visiškai nutrauktas (kokia galėtų būti gera priežastis atnaujinti - apytiksliai vertimas). Pandas 1.0 reikalauja bent 3.6 ir naujesnės versijos Python, todėl jei nesate tikri, patikrinkite, kurią įdiegėte:

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

$ python --version
Python 3.7.5

Lengviausias būdas patikrinti Pandas versiją yra toks:

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

Patobulintas automatinis apibendrinimas naudojant DataFrame.info

Mano mėgstamiausia naujovė buvo metodo atnaujinimas DataFrame.info. Funkcija tapo daug lengviau skaitoma, todėl duomenų tyrinėjimo procesas tapo dar paprastesnis:

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

Lentelių išvedimas Markdown formatu

Ne mažiau maloni naujovė yra galimybė eksportuoti duomenų rėmelius į Markdown lenteles naudojant DataFrame.to_markdown.

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

Tai leidžia daug lengviau skelbti lenteles tokiose svetainėse kaip „Medium“, naudojant „github“ esmę.

Ką mums atnešė Pandas 1.0

Nauji stygų ir loginiai tipai

Pandas 1.0 leidimas taip pat pridėjo naujų eksperimentinis tipai. Jų API vis tiek gali keistis, todėl naudokite ją atsargiai. Tačiau apskritai Pandas rekomenduoja naudoti naujus tipus visur, kur tai prasminga.

Kol kas aktoriai turi būti atliekami aiškiai:

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

Atkreipkite dėmesį, kaip stulpelis Dtipas rodomi nauji tipai − eilutė и bukas.

Naudingiausia naujojo eilutės tipo savybė yra galimybė pasirinkti tik eilučių stulpeliai iš duomenų rėmelių. Tai gali palengvinti teksto duomenų analizę:

df.select_dtypes("string")

Anksčiau eilučių stulpelių nebuvo galima pasirinkti aiškiai nenurodant pavadinimų.

Galite perskaityti daugiau apie naujus tipus čia.

Ačiū, kad skaitėte! Visą pakeitimų sąrašą, kaip jau minėta, galima peržiūrėti čia.

Šaltinis: www.habr.com

Добавить комментарий