9. ledna byly vydány Pandy 1.0.0rc. Předchozí verze knihovny je 0.25.
První hlavní vydání obsahuje mnoho skvělých nových funkcí, včetně vylepšené automatické sumarizace datových rámců, více výstupních formátů, nové datové typy a dokonce i nový dokumentační web.
Všechny změny lze zobrazit
Knihovnu můžete nainstalovat jako obvykle pomocí jádro, ale protože v době psaní tohoto článku jsou Pandy 1.0 stále release kandidát, budete muset explicitně specifikovat verzi:
pip install --upgrade pandas==1.0.0rc0
Buďte opatrní: protože se jedná o hlavní vydání, aktualizace může narušit starý kód!
Mimochodem, podpora Pythonu 2 byla od této verze zcela ukončena (co by mohl být dobrý důvod
$ pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ python --version
Python 3.7.5
Nejjednodušší způsob, jak zkontrolovat verzi Pandas, je tento:
>>> import pandas as pd
>>> pd.__version__
1.0.0rc0
Vylepšená automatická sumarizace s DataFrame.info
Moje oblíbená inovace byla aktualizace metody DataFrame.info. Funkce se stala mnohem čitelnější, což ještě více usnadňuje proces průzkumu dat:
>>> 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ýstupní tabulky ve formátu Markdown
Neméně příjemnou novinkou je možnost exportu datových rámců do tabulek Markdown pomocí DataFrame.to_markdown.
>>> df.to_markdown()
| | A | B | C |
|---:|----:|:--------|:------|
| 0 | 1 | goodbye | False |
| 1 | 2 | cruel | True |
| 2 | 3 | world | False |
Díky tomu je mnohem snazší publikovat tabulky na webech jako Medium pomocí github gists.
Nové typy pro řetězce a booleany
Vydání Pandas 1.0 také přidalo nové experimentální typy. Jejich API se může ještě změnit, takže je používejte opatrně. Obecně ale Pandas doporučuje používat nové typy všude tam, kde to má smysl.
V tuto chvíli je nutné obsazení provést explicitně:
>>> 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šimněte si, jak sloupec Dtype zobrazí nové typy − šňůra и bool.
Nejužitečnější funkcí nového typu řetězce je možnost výběru pouze řádkové sloupce z datových rámců. To může značně usnadnit analýzu textových dat:
df.select_dtypes("string")
Dříve nebylo možné vybrat sloupce řádků bez explicitního zadání názvů.
Můžete si přečíst více o nových typech
Děkuji za přečtení! Úplný seznam změn, jak již bylo zmíněno, si můžete prohlédnout
Zdroj: www.habr.com