Что принёс нам Pandas 1.0

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


9 января состоялся релиз Pandas 1.0.0rc. Предыдущая версия библиотеки — 0.25.

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

Все изменения можно посмотреть здесь, в статье же мы ограничимся небольшим, менее техническим обзором самого главного.

Установить библиотеку можно как обычно с помощью pip, но так как на момент написания статьи Pandas 1.0 всё ещё release candidate, потребуется явно указать версию:

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 так же добавили новые экспериментальные типы. Их 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 отображает новые типы — string и bool.

Наиболее полезной особенностью нового строкового типа является возможно выбора только колонок строк из датафреймов. Это может значительно упростить анализ текстовых данных:

df.select_dtypes("string")

Ранее колонки строк нельзя было выбирать без явного указания имён.

Больше о новых типах можно почитать здесь.



Спасибо, что дочитали! Полный список изменений, как уже упоминалось, можно посмотреть здесь.


Источник: habr.com

Комментарии: