Co przyniósł nam Pandas 1.0

Co przyniósł nam Pandas 1.0

9 stycznia odbyła się premiera Pandas 1.0.0rc. Poprzednia wersja biblioteki to 0.25.

Pierwszy większy wydanie zawiera wiele wspaniałych nowości, w tym ulepszone automatyczne sumowanie ram danych, więcej formatów wyjściowych, nowe typy danych oraz nową stronę dokumentacji.

Wszystkie zmiany można zobaczyć tutaj, w artykule ograniczymy się do krótkiego, mniej technicznego przeglądu najważniejszych rzeczy.

Bibliotekę można zainstalować jak zwykle za pomocą pip, ale ponieważ w momencie pisania artykułu Pandas 1.0 wciąż jest release candidate, należy wyraźnie określić wersję:

pip install --upgrade pandas==1.0.0rc0

Bądź ostrożny: ponieważ to większe wydanie, aktualizacja może zepsuć stary kod!

Przy okazji, od tej wersji całkowicie zrezygnowano z obsługi Pythona 2 (co może być dobrą okazją do aktualizacji — przyp. tłum.). Pandas 1.0 wymaga co najmniej Pythona 3.6+, więc jeśli nie jesteś pewien, sprawdź, który dokładnie masz:

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

$ python --version
Python 3.7.5

Najłatwiej sprawdzić wersję Pandas w ten sposób:

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

Ulepszone automatyczne sumowanie z DataFrame.info

Moim ulubionym nowym pomysłem jest aktualizacja metody DataFrame.info. Funkcja stała się znacznie bardziej czytelna, co ułatwia proces analizy danych:

>>> df = pd.DataFrame({
...:   'A': [1,2,3], 
...:   'B': ["goodbye", "cruel", "world"], 
...:   'C': [False, True, False]
...:})
>>> df.info()

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

Wyjście tabel w formacie Markdown

Nie mniej przyjemną nowością była możliwość eksportowania ram danych do tabel Markdown za pomocą DataFrame.to_markdown.

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

To znacznie ułatwia publikowanie tabel na stronach takich jak Medium przy użyciu github gists.

Co przyniósł nam Pandas 1.0

Nowe typy dla wartości ciągów i logicznych

W wydaniu Pandas 1.0 dodano również nowe eksperymentalne typy. Ich API może jeszcze się zmienić, więc używaj go ostrożnie. Ale ogólnie rzecz biorąc, Pandas zaleca stosowanie nowych typów wszędzie tam, gdzie to ma sens.

Na razie konwersję należy wykonać jawnie:

>>> B = pd.Series(["goodbye", "cruel", "world"], dtype="string")
>>> C = pd.Series([False, True, False], dtype="bool")
>>> df.B = B, df.C = C
>>> df.info()

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

Zauważ, jak kolumna Dtype wyświetla nowe typy — stringbool.

Najbardziej przydatną cechą nowego typu stringowego jest możliwość wyboru tylko kolumn stringowych z ram danych. Może to znacznie uprościć analizę danych tekstowych:

df.select_dtypes("string")

Wcześniej kolumny stringowe nie mogły być wybierane bez wyraźnego podania nazw.

Więcej o nowych typach można przeczytać tutaj.

Dziękujemy za przeczytanie! Pełną listę zmian, jak już wspomniano, można zobaczyć tutaj.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster