О чем речь?
В этой статье я бы хотела рассказать о применении python-библиотеки
Pandasql.
Многие люди, сталкивающиеся с задачами анализа данных, уже, скорее всего, знакомы с библиотекой
Pandas. Pandas позволяет быстро и удобно работать с табличными данными: фильтровать, группировать, делать join над данными; строить сводные таблицы и даже рисовать графики (для простых визуализации достаточно функции
plot(), а если хочется чего-то позаковыристее, то поможет библиотека
matplotlib). На Хабре не раз рассказывали о применении этой библиотеки для работы с данными:
раз,
два,
три.
Но по моему опыту далеко не все знают о библиотеке Pandasql, которая позволяет работать с Pandas DataFrames как с таблицами и обращаться к ним, используя язык SQL. В некоторых задачах проще выразить желаемое с помощью декларативного языка SQL, поэтому я считаю, что людям, работающим с данными, полезно знать о наличии такой функциональности. Если говорить о реальных задачах, то я использовала эту библиотеку для решения задачи join'a таблиц по нечетким условиям (необходимо было объединить записи о событиях из разных систем по примерно совпадающему времени, разрыв порядка 5 секунд).
Рассмотрим использование этой библиотеки на конкретных примерах.