Co przyniosły nam Pandy 1.0

Co przyniosły nam Pandy 1.0

9 stycznia wydano Pandy 1.0.0rc. Poprzednia wersja biblioteki to 0.25.

Pierwsza główna wersja zawiera wiele wspaniałych nowych funkcji, w tym ulepszone automatyczne podsumowywanie ramek danych, więcej formatów wyjściowych, nowe typy danych, a nawet nową witrynę z dokumentacją.

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

Możesz zainstalować bibliotekę w zwykły sposób, używając pypeć, ale ponieważ w chwili pisania tego tekstu Pandas 1.0 jest nadal Release Candidate, musisz wyraźnie określić wersję:

pip install --upgrade pandas==1.0.0rc0

Bądź ostrożny: ponieważ jest to wydanie główne, aktualizacja może złamać stary kod!

Nawiasem mówiąc, od tej wersji całkowicie zaprzestano obsługi Pythona 2 (co może być dobrym powodem aktualizacja - około. tłumaczenie). Pandas 1.0 wymaga co najmniej Pythona 3.6+, więc jeśli nie jesteś pewien, sprawdź, który z nich zainstalowałeś:

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

$ python --version
Python 3.7.5

Najprostszym sposobem sprawdzenia wersji Pand jest:

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

Ulepszone automatyczne podsumowanie w DataFrame.info

Moją ulubioną innowacją była aktualizacja metody DataFrame.info. Funkcja stała się znacznie bardziej czytelna, dzięki czemu proces eksploracji danych jest jeszcze łatwiejszy:

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

Wyprowadzanie tabel w formacie Markdown

Równie przyjemną innowacją jest możliwość eksportu ramek 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 |

Dzięki temu znacznie łatwiej jest publikować tabele w witrynach takich jak Medium, korzystając ze wskazówek githuba.

Co przyniosły nam Pandy 1.0

Nowe typy łańcuchów i wartości logicznych

W wersji Pandas 1.0 dodano także nowe funkcje eksperymentalny typy. Ich interfejs API może się jeszcze zmieniać, więc używaj go ostrożnie. Ale ogólnie Pandas zaleca używanie nowych typów wszędzie tam, gdzie ma to sens.

Na razie obsada musi zostać wykonana 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()
<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

Zwróć uwagę na kolumnę Typ D wyświetla nowe typy − ciąg и bool.

Najbardziej przydatną funkcją nowego typu string jest możliwość wyboru tylko kolumny wierszy z ramek danych. Może to znacznie ułatwić analizowanie danych tekstowych:

df.select_dtypes("string")

Wcześniej nie można było wybierać kolumn wierszy bez jawnego określenia nazw.

Możesz przeczytać więcej o nowych typach tutaj.

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

Źródło: www.habr.com

Dodaj komentarz