Amit a Pandas 1.0 hozott nekünk

Amit a Pandas 1.0 hozott nekünk

Január 9-én jelent meg a Pandas 1.0.0rc. A könyvtár korábbi verziója 0.25.

Az első nagyobb kiadás számos nagyszerű új funkciót tartalmaz, beleértve a továbbfejlesztett automatikus adatkeret-összegzést, több kimeneti formátumot, új adattípusokat, és még egy új dokumentációs oldalt is.

Minden változás megtekinthető itt, a cikkben a legfontosabb dolgok apró, kevésbé technikai áttekintésére szorítkozunk.

A könyvtárat a szokásos módon telepítheti a használatával gyümölcsmag, de mivel az írás idején a Pandas 1.0 még mindig kiadásra jelölt, akkor kifejezetten meg kell adnia a verziót:

pip install --upgrade pandas==1.0.0rc0

Legyen óvatos: mivel ez egy jelentős kiadás, a frissítés megtörheti a régi kódot!

A Python 2 támogatása egyébként ettől a verziótól kezdve teljesen megszűnt (mi lehet jó ok frissítés — kb. fordítás). A Pandas 1.0-hoz legalább Python 3.6+ szükséges, ezért ha nem biztos benne, ellenőrizze, melyiket telepítette:

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

$ python --version
Python 3.7.5

A Pandas verzió ellenőrzésének legegyszerűbb módja a következő:

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

Továbbfejlesztett automatikus összegzés a DataFrame.info segítségével

A kedvenc újításom a módszer frissítése volt DataFrame.info. A funkció sokkal olvashatóbbá vált, így az adatfeltárás folyamata még könnyebbé vált:

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

Táblázatok kiadása Markdown formátumban

Ugyanilyen kellemes újítás az adatkeretek Markdown táblákba történő exportálásának lehetősége DataFrame.to_markdown.

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

Ez sokkal egyszerűbbé teszi a táblázatok közzétételét olyan webhelyeken, mint a Medium, github lényegét használva.

Amit a Pandas 1.0 hozott nekünk

Új típusú karakterláncok és logikai értékek

A Pandas 1.0 kiadás újdonságokkal is bővült kísérleti típusok. Az API-juk továbbra is változhat, ezért óvatosan használja. Általánosságban azonban a Pandas új típusok használatát javasolja, ahol annak van értelme.

Egyelőre a szereposztást kifejezetten meg kell tenni:

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

Figyeld meg, hogyan az oszlop Dtípus új típusokat jelenít meg − húr и bool.

Az új karakterlánctípus leghasznosabb tulajdonsága a kiválasztási lehetőség csak soroszlopok adatkeretekből. Ez sokkal könnyebbé teheti a szöveges adatok elemzését:

df.select_dtypes("string")

Korábban a sorok oszlopait nem lehetett kifejezetten nevek megadása nélkül kiválasztani.

Az új típusokról bővebben olvashat itt.

Köszönöm hogy elolvastad! A változások teljes listája, mint már említettük, megtekinthető itt.

Forrás: will.com

Hozzászólás