Супер цепи для панд побеждают!

Мои любимые цепочки методов Pandas

Цепочки методов, которые я использую (и использую повторно), потому что они полезны и поэтичны, программно

Вступление

Когда я начал писать эту статью, я изначально намеревался поделиться несколькими общими цепочками методов, которые я использую сам. Я не вижу, чтобы их использовали другие. И я догадывался, что они могут быть полезны другим.

Ближе к концу разработки я понял, что это превратилось в своего рода оду Пандам. Вы когда-нибудь замечали стихи в коде?

Ниже приведены три (с половиной) цепочки методов, без которых я не мог бы жить. Надеюсь, они вам тоже пригодятся.

Прежде чем начать, не забудьте import pandas as pd как обычно.

Повернуть Pandas Describe Output

При выводе по умолчанию в Pandas describe() столбцы фрейма данных помещаются вверху, а статистика - по бокам и по строкам. Например:

# For the convenience of copy-paste:
df = pd.read_stata('http://www.stata-press.com/data/r15/auto2.dta')

Мой разум просто так не работает! Другая проблема заключается в том, что для более широких наборов (много столбцов) вывод не умещается в пространстве дисплея. Следующая цепочка методов позволяет легко исправить:

df.describe().transpose()

Ну вот:

Так намного легче читать. Кроме того, у вас не закончится горизонтальное пространство экрана при отображении (и чтении) вывода.

Делаем ценность считающейся немного более читаемой

Вы ненавидите, когда метод df['col_name'].value_counts() производит вывод, который не сортируется по столбцу ключа / индекса? Например.

Почему Отлично указано посередине? И почему Среднее вверху? Это не имеет никакого смысла. Следующая цепочка методов позволяет легко исправить:

df['col_name'].value_counts().sort_index()

Ну вот:

Проверка на отсутствие данных

Все лучшие учебники предлагают df.isnull().sum() как полезный способ проверки отсутствующих данных. И это работает. Но давайте посмотрим на чуть менее интуитивный df.isnull().mean(). Что произойдет, если вы найдете среднее значение двоичного файла? Вы получаете среднюю истину. Таким образом, вместо того, чтобы видеть количество пропущенных в каждом столбце, вы видите долю пропущенных в каждом столбце. Например:

Давайте сделаем еще один шаг вперед. Сделаем вывод еще более явным. Это делает следующая цепочка методов (и лямбда-функция).

df.isnull().mean().apply(lambda x : 
                         '{:.2f}% Missing'.format(x * 100))

Эта цепочка дает:

Заключение

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

Сообщите мне, что я мог пропустить? Оставляйте комментарии со своими мыслями и идеями по улучшению.

Еще одна вещь, которую я хотел сделать проще, когда смотрел наружу: перемещение столбцов панд. Переходя к другим инструментам, я всегда удивлялся тому, насколько это было сложно. Еще по теме:



Спасибо за прочтение

Спасибо за прочтение. Присылайте мне свои мысли и идеи. Вы можете написать, просто чтобы поздороваться. Я с нетерпением жду встречи в ближайшее время. Twitter: @adamrossnelson LinkedIn: Адам Росс Нельсон в Twitter и Facebook: Адам Росс Нельсон в Facebook.