Pandas 1.0 приносит большие изменения

Pandas, библиотека анализа данных для Python, наконец-то достигла версии 1.0. Pandas 1.0 удаляет большую часть устаревших функций и требует Python 3.6 или выше. 

Pandas был создан для простой работы с данными в структурированных форматах, такими как таблицы, матрицы и данные временных рядов. Pandas затмевает большую часть функциональности фреймов данных R и хорошо работает с другими библиотеками научных вычислений в мире Python.

В Pandas 1.0 создатели Pandas вводят множество критических изменений, над которыми уже давно ведется работа. Вот краткое изложение наиболее важных из них и как с ними справиться в будущем.

Pandas требует Python 3.6.1 или выше

Самым большим изменением в Pandas 1.0 является отказ от поддержки всех версий Python до Python 3.6.1. Pandas отказался от поддержки Python 2 и с 2019 года посвятил себя исключительно Python 3, так что это в основном уточнение существующей политики.

В проекте также действует новая политика поддержки будущих версий Pandas. Любое прекращение поддержки версии Python будет развернуто в основных новых версиях Pandas (2.0, 3.0 и т. Д.). В второстепенных выпусках функции не рекомендуются, но они не удаляются; в основных выпусках будут удалены функции.

Новое значение NA для Pandas

В более ранних версиях Pandas для представления отсутствующих данных использовались разные типы, в зависимости от типа контейнера - один для типов datetime, один для объектов и т. Д. Все они объединяются в один тип отсутствующих данных, называемый NA. В настоящее время поддержка NA ограничена несколькими типами объектов, и она считается экспериментальной, поэтому ее пока не следует использовать в производстве. 

Несовместимость API

Из-за большого количества изменений в Pandas 1.0 некоторые API-интерфейсы Pandas теперь обратно несовместимы. Сюда входят изменения в поведении многих общих элементов:

  • DataFrame тип
  • pandas.array
  • arrays.IntegerArray

Многие из этих несовместимостей вызовут предупреждения, но лучше всего протестировать существующие скрипты Pandas вместе с их аналогами Pandas 1.0, чтобы увидеть, как они работают.

Устаревшие функции в Pandas 1.0

В документации Pandas перечислены все функции, которые будут устаревшими, но не удалены в Pandas 1.0. Некоторые из них были просто переименованы или реорганизованы, например, модуль тестирования, в то время как другие изменяют использование определенных параметров функции. В нескольких случаях, таких как Series.item()и Index.item(), функции были спасены от устаревания и будут по-прежнему доступны.

Если вы используете версию Pandas более раннюю, чем 0.25, создатели Pandas рекомендуют сначала перейти на Pandas 0.25  , убедившись, что весь Panda-зависимый код ведет себя должным образом, а  затем перейти на Pandas 1.0. Это необходимо для того, чтобы любой код, использующий устаревшие функции, был помечен.

Функции, удаленные в Pandas 1.0

Некоторые ключевые функции Pandas были полностью удалены в Pandas 1.0:

  • SparseSeriesи SparseDataFrame. Вместо этого используйте Seriesили DataFrameс sparsevaluesопцией.
  • Регистрация модуля Matplotlib. Это сделано для предотвращения воздействия на Matplotlib при импорте Pandas.
  • Многие другие функции, которые ранее были объявлены устаревшими.

Опять же, это еще одна причина протестировать кандидат на выпуск Pandas 1.0 параллельно с вашей существующей установкой Pandas и убедиться, что ваши сценарии работают должным образом.

Установка Pandas 1.0

Pandas 1.0 можно установить непосредственно в Python с помощью диспетчера пакетов Pip, набрав pip install pandas. Pandas 1.0 также доступен как часть дистрибутива Anaconda Python для научных вычислений.

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