
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ć , 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.0rc0Bą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ą — 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.5Najłatwiej sprawdzić wersję Pandas w ten sposób:
>>> import pandas as pd
>>> pd.__version__
1.0.0rc0Ulepszone 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+ bytesWyjś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.

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+ bytesZauważ, jak kolumna Dtype wyświetla nowe typy — string i bool.
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ć .
Dziękujemy za przeczytanie! Pełną listę zmian, jak już wspomniano, można zobaczyć .
Źródło: habr.com
