Den 9. januar blev Pandas 1.0.0rc udgivet. Den tidligere version af biblioteket er 0.25.
Den første store udgivelse indeholder mange fantastiske nye funktioner, herunder forbedret automatisk dataframesumme, flere outputformater, nye datatyper og endda et nyt dokumentationssted.
Alle ændringer kan ses
Du kan installere biblioteket som normalt vha pip, men siden i skrivende stund er Pandas 1.0 stadig release candidate, skal du udtrykkeligt angive versionen:
pip install --upgrade pandas==1.0.0rc0
Vær forsigtig: da dette er en større udgivelse, kan opdateringen bryde den gamle kode!
Understøttelse af Python 2 er i øvrigt blevet fuldstændig afbrudt siden denne version (hvad kunne være en god grund
$ pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ python --version
Python 3.7.5
Den nemmeste måde at tjekke Pandas-versionen på er denne:
>>> import pandas as pd
>>> pd.__version__
1.0.0rc0
Forbedret automatisk opsummering med DataFrame.info
Min yndlingsinnovation var opdateringen af metoden DataFrame.info. Funktionen er blevet meget mere læsbar, hvilket gør processen med dataudforskning endnu nemmere:
>>> 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
Udskriver tabeller i Markdown-format
En lige så behagelig innovation er evnen til at eksportere datarammer til Markdown-tabeller ved hjælp af DataFrame.to_markdown.
>>> df.to_markdown()
| | A | B | C |
|---:|----:|:--------|:------|
| 0 | 1 | goodbye | False |
| 1 | 2 | cruel | True |
| 2 | 3 | world | False |
Dette gør det meget nemmere at publicere tabeller på websteder som Medium ved hjælp af github-gists.
Nye typer til strenge og booleans
Pandas 1.0-udgivelsen tilføjede også nyt eksperimentel typer. Deres API kan stadig ændre sig, så brug det med forsigtighed. Men generelt anbefaler Pandas at bruge nye typer, hvor end det giver mening.
Indtil videre skal rollebesætningen udføres eksplicit:
>>> 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
Læg mærke til, hvordan kolonnen Dtype viser nye typer − streng и bool.
Den mest nyttige funktion ved den nye strengtype er muligheden for at vælge kun rækkesøjler fra datarammer. Dette kan gøre parsing af tekstdata meget nemmere:
df.select_dtypes("string")
Tidligere kunne rækkekolonner ikke vælges uden eksplicit at angive navne.
Du kan læse mere om nye typer
Tak fordi du læste! Den fulde liste over ændringer kan, som allerede nævnt, ses
Kilde: www.habr.com