В этой статье June Tao Ching рассказал, как с помощью Pandas добиться на Python такого же результата, как в SQL-запросах. Перед вами — перевод, а оригинал вы можете найти в блоге towardsdatascience.com.
![image](https://habrastorage.org/r/w780q1/webt/cj/8c/mr/cj8cmrxsqvz5hdrjm-w8vxfzit4.jpeg)
Фото с сайта Unsplash. Автор: Hitesh Choudhary
Часто при работе над одним проектом нам приходится переключаться между SQL и Python. При этом некоторые из нас знакомы с управлением данными в SQL-запросах, но не на Python, что мешает нашей эффективности и производительности. На самом деле, используя Pandas, можно добиться на Python такого же результата, как в SQL-запросах.
Нужно установить пакет Pandas, если его нет.
Мы будем использовать знаменитый Датасет Титаник от Kaggle.
После установки пакета и загрузки данных нам необходимо импортировать их в наше окружение Python.
![image](https://habrastorage.org/r/w1560/webt/dq/0y/to/dq0ytoowgsfndwhq8jnrqmpjcpy.png)
Для хранения данных мы будем использовать DataFrame. Управлять этой структурой данных нам помогут различные функции Pandas.
Начнем с простых SQL-запросов, которые мы часто используем.
![image](https://habrastorage.org/r/w1560/webt/sh/mo/lg/shmolgw1imcs4behcf3-dfmh7ng.png)
После первой части вы узнали, как простыми способами исследовать DataFrame. Теперь попробуем сделать это с некоторыми условиями (это оператор
![image](https://habrastorage.org/r/w1560/webt/vv/up/1x/vvup1xjta8glj4q0gpeu5q4yqd0.png)
Если мы хотим выбрать только определенные столбцы из DataFrame, мы можем сделать это с помощью дополнительной пары квадратных скобок.
Примечание: если вы выбираете несколько столбцов, вам нужно поместить массив
![image](https://habrastorage.org/r/w1560/webt/iz/wh/k1/izwhk1wfunfcfojb7kocse1ebgs.png)
Если мы хотим отсортировать только один столбец COUNT, то можем просто передать булево значение в метод
Метод
И наконец, давайте попробуем некоторые стандартные статистические функции, которые важны при исследовании данных.
![image](https://habrastorage.org/r/w1560/webt/h6/fv/1-/h6fv1-xolzusyopnmym4tf4q1pe.png)
SQL не содержит операторов, возвращающих медианное значение, поэтому для получения медианного значения столбца с информацией о возрасте мы используем BigQuery
В Pandas метод агрегации
Теперь вы научились переписывать SQL-запросы на Python с помощью Pandas. Надеюсь, эта статья будет вам полезна.
Весь код можно найти в моем репозитории Github.
Спасибо за внимание!
![image](https://habrastorage.org/webt/cj/8c/mr/cj8cmrxsqvz5hdrjm-w8vxfzit4.jpeg)
Фото с сайта Unsplash. Автор: Hitesh Choudhary
Получение такого же результата на Python, как и при SQL-запросе
Часто при работе над одним проектом нам приходится переключаться между SQL и Python. При этом некоторые из нас знакомы с управлением данными в SQL-запросах, но не на Python, что мешает нашей эффективности и производительности. На самом деле, используя Pandas, можно добиться на Python такого же результата, как в SQL-запросах.
Начало работы
Нужно установить пакет Pandas, если его нет.
conda install pandas
Мы будем использовать знаменитый Датасет Титаник от Kaggle.
После установки пакета и загрузки данных нам необходимо импортировать их в наше окружение Python.
![image](https://habrastorage.org/webt/dq/0y/to/dq0ytoowgsfndwhq8jnrqmpjcpy.png)
Для хранения данных мы будем использовать DataFrame. Управлять этой структурой данных нам помогут различные функции Pandas.
SELECT, DISTINCT, COUNT, LIMIT
Начнем с простых SQL-запросов, которые мы часто используем.
![image](https://habrastorage.org/webt/sh/mo/lg/shmolgw1imcs4behcf3-dfmh7ng.png)
titanic_df["age"].unique()
вернет массив уникальных значений, поэтому нам придется использовать len()
, чтобы посчитать их количество.SELECT, WHERE, OR, AND, IN (SELECT с условиями)
После первой части вы узнали, как простыми способами исследовать DataFrame. Теперь попробуем сделать это с некоторыми условиями (это оператор
WHERE
в SQL).![image](https://habrastorage.org/webt/vv/up/1x/vvup1xjta8glj4q0gpeu5q4yqd0.png)
Если мы хотим выбрать только определенные столбцы из DataFrame, мы можем сделать это с помощью дополнительной пары квадратных скобок.
Примечание: если вы выбираете несколько столбцов, вам нужно поместить массив
["name","age"]
внутри квадратных скобок.isin()
работает точно так же, как IN
в SQL-запросах. Чтобы использовать NOT IN
, на Python нам нужно использовать отрицание (~)
.GROUP BY, ORDER BY, COUNT
GROUP BY
и ORDER BY
также являются популярными SQL-операторами при исследовании данных. А теперь давайте попробуем использовать их на Python.![image](https://habrastorage.org/webt/iz/wh/k1/izwhk1wfunfcfojb7kocse1ebgs.png)
Если мы хотим отсортировать только один столбец COUNT, то можем просто передать булево значение в метод
sort_values
. Если мы собираемся сортировать несколько столбцов, то должны передать массив булевых значений в метод sort_values
.Метод
sum()
выдаст суммы для каждого из столбцов в DataFrame, которые могут быть численно агрегированы. Если нам нужен только определенный столбец, то нужно указать имя столбца, используя квадратные скобки.MIN, MAX, MEAN, MEDIAN
И наконец, давайте попробуем некоторые стандартные статистические функции, которые важны при исследовании данных.
![image](https://habrastorage.org/webt/h6/fv/1-/h6fv1-xolzusyopnmym4tf4q1pe.png)
SQL не содержит операторов, возвращающих медианное значение, поэтому для получения медианного значения столбца с информацией о возрасте мы используем BigQuery
APPROX_QUANTILES
В Pandas метод агрегации
.agg()
также поддерживает другие функции, например sum
.Теперь вы научились переписывать SQL-запросы на Python с помощью Pandas. Надеюсь, эта статья будет вам полезна.
Весь код можно найти в моем репозитории Github.
Спасибо за внимание!