Изучите Pandas для науки о данных

4 менее известных функции Pandas, которые могут упростить вашу работу

Ускорьте ваши проекты в области науки о данных

Многие специалисты по обработке данных использовали Python в качестве предпочтительного языка программирования. Как язык с открытым исходным кодом Python приобрел значительную популярность, предоставляя множество библиотек, связанных с наукой о данных. В частности, библиотека pandas, возможно, является наиболее распространенным набором инструментов среди ученых, работающих с данными на Python.

Я должен сказать, что библиотека pandas настолько хорошо разработана, что предоставляет очень большой набор функций для различных операций. Однако недостатком этого мощного набора инструментов является то, что некоторые полезные функции могут быть менее известны новичкам. В этой статье я хотел бы поделиться четырьмя такими функциями.

1. Функция where ()

Большую часть времени для набора данных, с которым мы работаем, нам нужно выполнить некоторое преобразование данных, чтобы сделать данные в анализируемом формате. Функция where() полезна для замены значений, не удовлетворяющих условию. Давайте рассмотрим следующий пример его использования. Конечно, нам сначала нужно было импортировать pandas и numpy, как мы это делаем для всех этапов обработки данных.

На приведенном выше рисунке мы создали серию и применили функцию where(). В частности, использование сигнатуры этой функции where(condition, other). В этом вызове аргумент condition будет приводить к логическим значениям, и когда они True, исходные значения сохраняются, в то время как они False, будет использоваться значение, указанное другим аргументом. В нашем случае любые значения ниже 1000 были сохранены, а те, которые были равны или больше 1000, были присвоены 1000.

Эту функцию можно использовать не только с Series, но и с DataFrame. Давайте посмотрим на аналогичное использование с DataFrame. В приведенном ниже примере все нечетные числа DataFrame df0 будут увеличены на 1, а четные значения сохранятся.

2. Функция pivot_table ()

В отличие от функции where(), функция pivot_table() доступна только для DataFrame. Эта функция предназначена для создания сводной таблицы в виде электронной таблицы, и поэтому это отличный инструмент для обобщения, анализа и представления данных путем простого отображения данных. Его мощь лучше всего показать на более реалистичном примере.

На приведенном выше рисунке мы создали DataFrame, который состоял из записей о заработной плате и бонусах вместе с полем сотрудников и информацией об отделе. Затем мы создали сводную таблицу с помощью функции pivot_table(). В частности, мы устанавливаем столбцы зарплаты и бонусов на аргумент values, устанавливаем отдел на аргумент index, устанавливаем пол на аргумент columns и устанавливаем [np.mean, np.median, np.amax] на аргумент aggfunc.

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

3. Функция qcut ()

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

Однако эту операцию можно легко реализовать с помощью функции qcut(), которая дискретизирует переменную на пулы равного размера (например, квантили и децили) на основе их рангов. Давайте посмотрим, как эта функция работает, на следующем примере.

На приведенном выше рисунке мы создали DataFrame с 3 столбцами. Нас интересовало создание квантилей для столбца var2. Таким образом, мы указали аргумент q равным 4 (это может быть 10, если вам нужны децили). Мы также указали список меток для отметки этих квантилей.

4. Функция melt ()

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

В отличие от функции транспонирования T, которая полностью перемещает DataFrame, функция melt() особенно полезна для преобразования данных из широкого формата в длинный. Давайте посмотрим, как это работает, на следующем примере.

На приведенном выше рисунке мы создали DataFrame в широком формате. В частности, у нас есть две меры до и после приема лекарства. Затем мы использовали функцию melt() для создания DataFrame длинного формата. Мы указали SubjectID как id_vars, две меры как value_vars, и переименовали столбцы, чтобы они были более значимыми.

Прежде чем ты уйдешь

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

Надеюсь, вам понравилось читать эту статью. Вы можете найти код на GitHub.

об авторе

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