Pull to refresh

Comments 9

А скорость работы реализаций, делающих одно и то же на pandas и pandasql где можно посмотреть?
Отличный вопрос! Посмотреть можно тут (добавила в Notebook сравнение по производительности).

Стоит помнить, что Pandasql под капотом работает на SQLite и перегоняет данные из DataFrames в БД. Так что, ожидаемо, код на Pandasql будет работать дольше. В первых 2 примерах время выполнения кода на Pandas составляет порядка 0.01 секунды, а на Pandasql — 1 секунда (при этом рост времени выполнения от объема данных достаточно линейный).
В примере с JOIN'ом таблиц Pandasql выигрывает у Pandas'а (скорее всего, более эффективный JOIN таблиц в SQLite позволяет отыграть затраты на накладные расходы).



На самом деле такое ощущение, что этот SQL в python код как будто бы случайно попал, как будто из другого места вставился.

Не знаю где такое может пригодиться, но скорее похоже на «мне лень работать с базами вставлю ка я сразу в код запросы».
Ну почему же случайно? Есть нормальная библиотека для работы с базами данных MySql. Подобный представленному способ использования языка запросов, конечно, вызывает сомнения… Но возможно в некоторых ситуациях он будет удобнее для использования...
@Mugik
Не знаю где такое может пригодиться, но скорее похоже на «мне лень работать с базами вставлю ка я сразу в код запросы».

Как было отмечено, использование декларативного языка может упростить понимание кода, улучшить knowledge sharing внутри команды.

Если хочется иметь отдельные sql-файлы с запросами, их можно вынести в файлы. Но подобное разделение усложнит поддержку кода, так как сложнее будет установить связь между запросом и его использованием в коде.
Вообще говоря, хорошо иметь иметь в арсенале набор методов и языков для манипуляции и трасформирования данных. Иногда можно подзабыть специфику работы framework или языка (особенно, когда его писал давно и вообще кто-то другой), а SQL (по крайней мере простой) спустя даже существенное время после написания кода читается вполне неплохо.
Если нужно вытащить данные из базы в агрегированном виде через ODBC и использовать Jupyter + Python в качестве основы для дальнейшего отображения в виде графиокв, то SQL это "самое то" на первых этапах анализа для тех кто уже знаком с SQL.
Спасибо за статью. Давно ждал такого сравнения. Было бы еще интересно увидеть сравнение скорости для этих задач.
Sign up to leave a comment.

Articles