TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #200 2.7K
⚡️ Удобство функций в аналитике данных: пример на практике

Я не так часто работаю с функциями, но иногда это действительно помогает оптимизировать работу. Бывает, что они - настоящее спасение. ☝️

🎯 Давайте рассмотрим ситуацию: вам нужно извлекать данные за определенные периоды времени. Вместо того чтобы писать SQL-запрос каждый раз заново, можно обернуть сам запрос в функцию.

🛠 С функцией легко менять диапазон дат, просто передав другой список в параметрах.
Используем библиотеку pandasql, которая позволяет выполнять SQL-запросы по DataFrame, как будто это таблица из базы данных.
import pandas as pd
from pandasql import sqldf

# Создаем небольшой DataFrame
data = {
'id': [1, 2, 3, 4, 5],
'created_at': ['2024-12-01', '2024-12-05', '2024-12-07', '2024-12-09', '2024-12-15'],
'user_id': [182, 256, 550, 306, 457]
}
df = pd.DataFrame(data)

# Преобразуем столбец created_at в datetime
df['created_at'] = pd.to_datetime(df['created_at'])

Теперь напишем саму функцию (пусть называется get_sql) для выборки данных через SQL:
def get_sql(df, dates):
query = f"""
SELECT *
FROM df
WHERE created_at >= '{dates[0]}' -- первая дата
AND created_at < '{dates[1]}' -- вторая дата
"""
return sqldf(query, locals())


🔍И теперь можно обращаться к ней столько раз, сколько нужно
dates1 = ['2024-12-01', '2024-12-10'] 
df_part1 = get_sql(df, dates1)

После выполнения этого кода вы получите таблицу с отфильтрованными данными (первые 4 строки).

Конкретный пример использования, чтобы сразу запомнилось, а не что-то абстрактное. 😂

Когда нужно выгрузить данные по рассылкам писем, обычно работаешь с очень большими базами. За один раз данные за месяц не получить — слишком объемно. Но можно разбить процесс на небольшие интервалы, например, выгружать данные по несколько дней.

🍕 Написал такой скрипт один раз, и потом спокойно запускаешь его 15 раз, собирая потом части в единое целое! 🚀
  • ✍ 15
  • ❤‍🔥 8
  • 👍 5
  • ❤ 1
More from @analysts_world
  1. Sep 21, 2026📊 Задачка с собеседования Ну что, по итогам голосования большинство хотят задачки и sql.…
  2. Sep 14, 2026Post #345
  3. Sep 14, 2026Что-то я тут прям зачастила с A/B тестами 😅 Смотрю на последние посты и такое чувство, чт…
  4. Sep 1, 2026🎒 С 1 сентября, друзья! Сегодня как раз отправила своих детей в школу – и вот это чувство…
  5. Aug 24, 2026Вне выборки Обычно здесь про SQL, Python и AB-тесты. Но не всё, что важно, попадает в выбо…
  6. Aug 20, 2026Fuckup Night от создателей Trisigma, Ares и karpov.courses Согласитесь, ивенты, где все де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →