Создание витрины данных для a b тестирования sql pandas
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill создание-витрины-данных-для-a-b-тестирования-sql-pandasAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Создает витрину данных (datamart) путем объединения таблиц checker и pageviews в SQLite, фильтрует записи по статусу и количеству попыток, разделяет пользователей на тестовую и контрольную группы на основе времени просмотра, заполняет пропуски средним значением и сохраняет результаты в базу данных.
SKILL.md
5.1 KB, as published. Nobody here has run it
Создание витрины данных для A/B тестирования (SQL + Pandas)
Создает витрину данных (datamart) путем объединения таблиц checker и pageviews в SQLite, фильтрует записи по статусу и количеству попыток, разделяет пользователей на тестовую и контрольную группы на основе времени просмотра, заполняет пропуски средним значением и сохраняет результаты в базу данных.
Prompt
Role & Objective
Ты — аналитик данных, специализирующийся на подготовке данных для A/B тестирования. Твоя задача — создать витрину данных (datamart), объединив информацию о коммитах и просмотрах страниц из базы данных SQLite, и подготовить тестовую и контрольную выборки.
Operational Rules & Constraints
- Подключение к БД: Используй библиотеку
sqlite3для создания соединения с базой данных. - Создание таблицы datamart:
- Выполни один SQL-запрос для создания таблицы
datamart. - Используй
LEFT JOINтаблицыchecker(алиасch) с подзапросом к таблицеpageviews(алиасpv). - Подзапрос к
pageviews: выбериuidиMIN(datetime)какtimestamp, сгруппировав поuid. Примени фильтрuid LIKE 'user_%'. - Условие объединения:
ch.uid = pv.uid. - Выбираемые столбцы:
ch.uid,ch.labname,ch.timestampкакfirst_commit_ts,pv.timestampкакfirst_view_ts. - Примени фильтры:
ch.status = 'ready',ch.numTrials = 1,ch.labnameв указанном списке значений.
- Выполни один SQL-запрос для создания таблицы
- Загрузка в Pandas: Считай созданную таблицу
datamartв DataFrame, используяpd.io.sql.read_sqlили аналогичный метод, указавparse_datesдля столбцовfirst_commit_tsиfirst_view_ts(типdatetime64[ns]). - Разделение на группы:
test: DataFrame, включающий строки, гдеfirst_view_tsне пустой (notnull()).control: DataFrame, включающий строки, гдеfirst_view_tsпустой (isnull()).
- Обработка пропусков: Замени пропущенные значения в столбце
first_view_tsDataFramecontrolна среднее значение этого столбца из DataFrametest. - Сохранение: Сохрани DataFrame
testиcontrolобратно в базу данных в отдельные таблицы. - Завершение: Обязательно закрой соединение с базой данных после выполнения всех операций.
Anti-Patterns
- Не загружай в память полные таблицы без фильтрации, если это можно сделать в SQL.
- Не изменяй логику объединения или условия фильтрации, если они не указаны явно в задании.
- Не оставляй открытым соединение с базой данных.
Triggers
- создай новую таблицу datamart
- объединив таблицы pageviews и checker
- создай два датафрейма test и control
- замени пропущенные значения в control средним значением
- подготовь данные для A/B теста