Што прынёс нам Pandas 1.0

Што прынёс нам Pandas 1.0

9 студзеня адбыўся рэліз Pandas 1.0.0rc. Папярэдняя версія бібліятэкі - 0.25.

Першы мажорны рэліз утрымоўвае мноства выдатных новаўвядзенняў, у тым ліку палепшанае аўтаматычнае сумаванне датафрэймаў, больш фарматаў высновы, новыя тыпы дадзеных і нават новы сайт дакументацыі.

Усе змены можна паглядзець тут, у артыкуле ж мы абмяжуемся невялікім, менш тэхнічным аглядам самага галоўнага.

Усталяваць бібліятэку можна як звычайна з дапамогай зярнятка, але паколькі на момант напісання артыкула Pandas 1.0 усё яшчэ кандыдат на вызваленне, спатрэбіцца відавочна пазначыць версію:

pip install --upgrade pandas==1.0.0rc0

Будзьце асцярожныя: бо рэліз мажорны, абнаўленне можа зламаць стары код!

Дарэчы, з гэтай версіі цалкам спынена падтрымка Python 2 (што можа стаць добрай нагодай абнавіцца - заўв. перав.). Pandas 1.0 патрабуе прынамсі Python 3.6+, так што калі не ўпэўненыя, удакладніце які менавіта ўсталяваны ў вас:

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

$ python --version
Python 3.7.5

Праверыць версію Pandas прасцей за ўсё так:

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

Палепшанае аўтасумаванне з DataFrame.info

Маім каханым новаўвядзеннем стала абнаўленне метаду DataFrame.info. Функцыя стала значна больш чытэльнай, што робіць працэс даследавання дадзеных яшчэ прасцей:

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

Вывад табліц у фармаце Markdown

Не менш прыемным новаўвядзеннем стала магчымасць экспартаваць датафрэймы ў табліцы Markdown з дапамогай DataFrame.to_markdown.

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

Гэта моцна спрашчае публікацыю табліц на сайтах тыпу Medium з выкарыстаннем github gists.

Што прынёс нам Pandas 1.0

Новыя тыпы для радкоў і лагічных значэнняў

У рэліз Pandas 1.0 гэтак жа дадалі новыя эксперыментальныя тыпы. Іх API яшчэ можа змяніцца, так што выкарыстоўвайце яго асцярожна. Але ўвогуле Pandas рэкамендуе выкарыстоўваць новыя тыпы ўсюды, дзе гэта мае сэнс.

Пакуль што прывядзенне трэба выконваць відавочна:

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

Звярніце ўвагу, як калонка Dtype адлюстроўвае новыя тыпы радок и бул.

Найбольш карыснай асаблівасцю новага радковага тыпу з'яўляецца магчыма выбару толькі калонак радкоў з датафрэймаў. Гэта можа значна спрасціць аналіз тэкставых дадзеных:

df.select_dtypes("string")

Раней калонкі радкоў нельга было выбіраць без відавочнага ўказання імёнаў.

Больш пра новыя тыпы можна пачытаць тут.

Дзякуй, што дачыталі! Поўны спіс змен, як ужо згадвалася, можна паглядзець тут.

Крыніца: habr.com

Дадаць каментар