SQL и Pandas
Coding
Pandas
В отличие от SQL, Pandas имеет встроенные функции, которые помогают, даже когда вы даже не знаете, как выглядят данные.
Это особенно полезно, когда данные уже находятся в формате файла (.csv, .txt, .tsv и т. д.).
Pandas также позволяет работать с наборами данных, не влияя на ресурсы базы данных.
Я объясню и покажу некоторые примеры нескольких функций, которые мне действительно нравятся:
pandas.read_csv()
Сначала вам нужно вытащить данные в фрейм данных. После того, как вы установили имя переменной (‘df’ below) вы можете использовать другие функции для анализа и манипулирования данными. Я использовал параметр index_col при загрузке данных в фрейм данных.
Этот параметр устанавливает первый столбец (index = 0) в качестве меток строк для кадра данных. Вы можете найти другие полезные параметры здесь.
Иногда вам нужно поиграться с параметрами, прежде чем они будут в правильном формате.
Эта функция не будет возвращать вывод, если он установлен в переменную, но после установки вы можете использовать следующую функцию для просмотра данных.
# Command to import the pandas library to your notebook
import pandas as pd
# Read data from Titanic dataset.
df = pd.read_csv('...titanic.csv', index_col=0)
# Location of file, can be url or local folder structure
pandas.head()
Функция head очень полезна для предварительного просмотра того, как выглядит фрейм данных после его загрузки. По умолчанию показываются первые 5 строк, но вы можете изменить это, набрав.head(10).
df.head()

Мы можем видеть, что есть комбинация строк, целых чисел, чисел с плавающей точкой, и что некоторые столбцы имеют значения NaN.
pandas.info()
Функция info даст разбивку на столбцы данных и сколько у каждого ненулевых записей. Он также говорит вам, какой тип данных для каждого столбца и сколько всего записей в кадре данных.
df.info()

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

Чтобы увидеть все столбцы, не только числовые, вам нужно использовать параметр include, показанный ниже.
Обратите внимание, что были добавлены «unique», «top» и «freq». Они показаны только для нечисловых типов данных и NaN для числовых. Другие отклонения сверху - это NaN для этих новых столбцов.
df.describe(include='all')

pandas.isna()
Функция isna сама по себе не особенно полезна, поскольку она возвращает весь фрейм данных со значением False, если поле заполнено, или True, если это значение NaN или NULL.
Если вы включите .sum () в isna (), вы получите вывод, подобный приведенному ниже, с количеством полей NaN или NULL для каждого столбца.
df.isna().sum()

pandas.plot()
Функция plot действительно полезна для быстрой визуализации ваших данных. Эта функция использует matplotlib для визуализаций, поэтому, если вы знакомы с этой библиотекой, это будет легко понять.
Вы можете найти все различные параметры, которые вы можете использовать для этой функции здесь.
df.plot(x='age', y='fare', kind='scatter')

Когда использовать SQL,а когда Pandas?
Какой инструмент использовать, зависит от того, где находятся ваши данные, что вы хотите с ними делать и каковы ваши сильные стороны.
Если ваши данные уже в формате файла, нет никакой необходимости использовать SQL для чего-либо.
Если ваши данные поступают из базы данных, вы должны читать следующие заголовки, чтобы понять, насколько вы должны использовать SQL.
Какой у вас доступ к БД?
Если у вас есть доступ только для написания запроса, а кто-то другой выполняет его для вас, вы не сможете по-настоящему взглянуть на свои данные.
Это время, когда вы должны просто извлечь все данные, которые, по вашему мнению, вам могут понадобиться, и экспортировать их в csv для использования pandas.
Еще одно соображение: если запрос, который вам нужно будет выполнить для ваших данных, будет занимать много ресурсов, и вы знаете, что администратор базы данных не допустит этого, тогда просто извлеките данные и сделайте работу снаружи базы данных с pandas. Избегайте SELECT * в своих запросах, особенно если вы не уверены, сколько данных может быть в таблице
Как вы хотите преобразовать / объединить ваши данные?
Если вы уже знаете некоторые вещи, которые вы хотите сделать с данными, например отфильтровывать определенные значения, объединять их в другую таблицу, объединять определенные поля в вычислениях или конкатенации и т.д.
Будет проще запустить SQL для извлечения данных как вы этого хотите, а затем экспортировать в CSV для любого анализа данных или работы с данными.
В чем вы сильны?
Если вы чувствуете себя более комфортно в SQL или Pandas, тогда используйте этот язык для манипулирования данными.
В итоге
Оба эти инструмента действительно полезны. Я рекомендую изучать оба. Комбинация даст вам возможность эффективно выполнять широкий спектр анализа и обработки данных.
Но если вы работаете с действительно большими наборами данных, вы можете использовать Dask, который построен на Pandas специально для больших данных.

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