Machine Learning: Кое е новото в Pandas 1.0?

Автор: Десислава Христова

Новото в pandas 1.0 Инфографика

В новата версия на Pandas от 29-ти януари 2020г. са направени доста подобрения на библиотеката и са въведени редица нови възможности, които значително улесняват процеса на работа при анализ на данни с Python.

В тази статия ще ви запозная с някои от по-интересните нововъведения в Pandas 1.0, като ще видите с какво те могат да бъдат полезни и какви са разликите със старата версия.

Данните, използвани за примерите, които ще видите по-надолу в статията, са синтетични. Те съдържат 6 записа с информация за студенти, които на базата на определена оценка са преминали или не даден курс.

Липсващи стойности с pandas.NA

С версия 1.0 бе въведен нов начин за отбелязване на липсващи стойности. До преди това се използваше само np.nan за данни от тип float64 или object, np.NaT за DateTime и None за object. Целта на pandas.NA е да бъде индикатор за липсващи стойности независимо от типа на данните. Тъй като това е само експериментална фунционалност, е напълно възможно да настъпят редица изменения в следващи версии на Pandas.

Пример:

Резултат:

 StudentGradePassed
0John Smith3False
1Dave Willington4True
2Caroline Reyes6True
3Alexa Stone< NA >< NA >
4Jessica Scott4True
5Mikayla Jackson5True

Получават се различни резултати от аритметични операции при прилагане на pandas.NA за разлика от np.nan. За почти всяка от тях, полученият резултат е , докато при използване на np.nan е False или nan.

Няколко примера:

  • Аритметични операции

Изключения:

  • Логически операции

Конвертиране към Markdown

Конвертирането на DataFrame структурата в Markdown таблица е едно полезно нововъведение, което предлага новата версия на Pandas. За тази цел е създаден методът to_markdown(). От него получаваме като резултат Markdown таблица във вид на низ. Това е полезно, когато искаме да представим таблица с данните в интернет.

Пример:

Въвеждането на to_markdown() значително улеснява работата на анализаторите. Липсата на този метод в старата версия е налагало например ръчно писане на Markdown таблиците, използване на някакъв онлайн инструмент за конвертиране, създаване на собствени функции или използване на модула tabulate.

Методът convert_dtypes()

Convert_dtypes() е създаден с цел да се насърчи използването на новите типове данни. Той преобразува всяка колона до най-подходящия тип, който поддържа новият индикатор за липсващи стойности - pandas.NA.

Пример:

Резултат:

Student object
Grade float64
Passed object
dtype: object

Резултат:

Student string
Grade Int64
Passed boolean
dtype: object

String и Boolean типове

Въведени са 2 нови типа данни - string за текст и boolean за True/False стойности. Тъй като това са експериментални функционалности, Pandas не задава автоматично тези типове и все още определя нечисловите колони като object. Ако искаме изрично да зададем да бъдат string или boolean, трябва да го посочим явно. Полезността се проявява в това, че с въвеждането на тези типове се прави ясно разграничение на данните.

Пример:

Резултат:

Някои подобрения на съществуващи методи

Методът select_dtypes() позволява отделяне на част от DataFrame на базата на типове колони. В новата версия на Pandas, този метод е направен да работи чрез векторизация вместо итерации на цикъл.

Резултат:

 StudentGrade
0John Smith3
1Dave Willington4
2Caroline Reyes6
3Alexa Stone< NA >
4Jessica Scott4
5Mikayla Jackson5

Резултат:

 Passed
0False
1True
2True
3< NA >
4True
5True

Методът info() дава възможност да видим основна информация за данните - колко е броят записи и колони, дали има липсващи стойности, какъв е типът на променливите и колко памет се използва. Това е изключително полезно, когато си опознаваме данните. В новата версия на Pandas в резултата от метода info() вече се показват и номерата на редовете.

Пример:

  • Pandas 0.25.x
  • Pandas 1.0.0

Разгледаните нововъведения не се изчерпват до тук. Има още много подобрения на съществуващи методи, както и премахване на остарели такива, което значително подобрява работата с библиотеката. Можете да научите повече информация в официалната документация.

Искате да научите повече за машинното обучение?

Включете се в курса по машинно обучение и анализ на данни с Python.

© Copyright 2019 DeviseExpert Всички права запазени
envelopephone-handsetmap-marker linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram