Основные возможности Pandas 1.0

Новые улучшения, которые вы можете использовать уже сегодня

Примечание: Pandas 1.0.0rc был выпущен 9 января. Предыдущая версия была 0.25

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

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

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

pip install --upgrade pandas==1.0.0rc0

Конечно, обновление может сломать часть вашего кода, потому что это выпуск основной версии, поэтому будьте осторожны!

В этой версии Pandas также отсутствует поддержка Python 2. Для использования Pandas 1.0+ требуется как минимум Python 3.6+, поэтому убедитесь, что ваши pip и python используют правильные версии.

$ 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

Форматы вывода для таблиц уценки

Следующая моя любимая функция - это возможность экспортировать фреймы данных в таблицы уценки с помощью нового метода DataFrame.to_markdown.

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

Это упрощает отображение таблиц в таких местах, как Medium, через github gists.

Новые типы данных для логических значений и строк

Pandas1.0 также представил экспериментальные типы данных для логических значений и строк.

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

По умолчанию Pandas не будет автоматически преобразовывать ваши данные в эти типы (пока). Но вы все равно можете использовать их, если явно скажете 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.

Наиболее полезным преимуществом нового строкового dtype является то, что теперь вы можете выбирать только строковые столбцы из DataFrame. Это ускоряет построение анализа только текстовых компонентов вашего набора данных.

df.select_dtypes("string")

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

Дополнительная документация по новым типам доступна здесь.

Спасибо за прочтение! Если вы нашли это полезным или интересным, я напишу о других трюках Python и Data Science, так что подпишитесь на меня, чтобы получить больше подобных статей.