SQL запросы в Pandas | Анатолий Карпов | karpov.courses
Вставка
- Опубліковано 17 лют 2022
- Симулятор аналитика: bit.ly/3YNmKEZ
Представьте, что вы решаете тестовое задание на позицию аналитика данных.
В одном из заданий вам дают описание таблицы, в которой хранятся логи покупок в интернет-магазине. От вас требуется написать несколько SQL запросов для решения различных задач. Как нам убедиться, что наши запросы работают корректно, если самой базы данных у нас нет?
Хорошая идея - сгенерировать набор данных и протестировать SQL запросы прямо в Jupyter Notebook. Давайте разберёмся, как можно сгенерировать продуктовый лог и как обращаться к Pandas Dataframe при помощи SQL!
Ссылка на ноутбук: drive.google.com/drive/folder...
Учитесь Data Science с нами: karpov.courses/
В видео использую метод append, для объединения данных, метод устарел, начиная с версии Pandas 1.4.0 нужно использовать concat().
в анаконде pandas до сих пор 0.4 версии или какой там... так что это нормально )
Анатолий, это прекрасно. Делайте ещё, пожалуйста. Спасибо.
Спасибо, этот шорт-формат очень крутой! Да еще именно этот пример как раз в тему моей текущей рабочей задачи пришелся!
Для начинающих очень полезно. Спасибо большое.
Спасибо, как раз недавно нужно было сгенерить датасет, но делал это на коленках. Теперь вижу как оптимизировать свою работу. Полезно!
Да, супер полезно, спасибо!
Круто, понравилось, спасибо!
Высший пилотаж!
Большое спасибо!
Я ваш фанат, спасибо большое за видео))
круто!
Видео отличное. Единственное, не мог оторваться от опечатки в слове funnel, но это мелочь.
А для чего в функции generate_funel_actions при создании датафрейма передаётся параметр index = [0]?
Спасибо!
Бывают ситуации когда в пандас сложно выбрать данные. Например когда задача решается оконным функциями sql.
Есть метод transform в панде
Меня смутило поле - дата совершения события. Я думал, что SQL-запрос будет мудренее. Действительно, Анатолий немного упростил ситуацию. И его SQL-запрос по-факту занижает конверсию в покупку. Человек может посмотреть ОДИН и ТОТ же товар трижды в течении дня и затем его купить. Наверное, в этом случае конверсия - 100% для данного товара. Но у Анатолия получится - 33%.
Тоже обратил внимание. По хорошему для воронки нужно считать количество уникальных сочетаний пользователь-товар. С другой стороны, зависит от задач: например, большое количество "холостых" просмотров одним пользователем одного товара жто тоже инсайт - может интерфейс не очень и т.д. В общем, смотря что мы хотим
Абсолютно согласен, в таком случае сначала нужно взять только уникальные пары. Но в видео действительно рассмотрел самый простой вариант.
Анатолий, большое спасибо за замечательный контент! Мы не придираемся )) это скорее критический подход аналитика )) Всё, как вы нас учите!
@@user-ub8se9xo7s Все правильно)
🔥
sqlite3 почему не использовать?
Кайф
Получается, через эту библиотеку и джойнить по неравенству можно?
Меня как-то отбраковали на этапе решения тестового задания, только за то, что в итоговом запросе к датафрейму, когда нужно было показать результат, написал для моего удобства запрос SQL (pandasql).
Если используете Jupyter, то всё ок. А если пишите в PyCharm, то получаете ошибку sqlalchemy.exc.ObjectNotExecutableError: Not an executable object:.
Нужно либо переустановить старую версию SQLAlchemy командой терминала( pip install SQLAlchemy==1.4.17) и тогда всё заработает, или разбираться в документации SQLAlchemy 2.0 и переписывать строку запроса q="""SELECT ...""".
Не факт что в базе есть данные с каждым днём. Значит нам нужна таблица с датами каждого дня и к ней уже присоединяем основные данные по дате. А в целом спасибо за пример
загрузил библиотеку pandasql через "pip install pandasql". Но когда импортирую, пишет:
No module named 'pandasql'
Сам забыл как сделать, твой совет помог вспомнить)
А тебе надо добавить ! в начало будет "!pip install pandasql"
! нужен чтобы команды в консоль отправлять
Много лишних слов
Из песни слова не выкинешь.