Основные возможности 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, так что подпишитесь на меня, чтобы получить больше подобных статей.