← Назад к вопросам

Расскажи про инструменты с которыми работаешь

1.0 Junior🔥 301 комментариев
#Опыт работы и проекты

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Инструменты Data Analyst: полный стек

В своей работе я использую комплексный набор инструментов для полного цикла анализа данных — от загрузки и обработки до визуализации и ML.

1. Языки программирования и данные

Python (основной язык)

# Типичный рабочий стек
import pandas as pd          # DataFrames и манипуляция данными
import numpy as np           # Численные вычисления
import matplotlib.pyplot as plt  # Визуализация
import seaborn as sns        # Статистическая графика
from scipy import stats      # Статистические тесты
scikit-learn                 # Machine Learning
import plotly               # Интерактивные графики

SQL (критически важен)

-- Работаю с PostgreSQL, MySQL, BigQuery
-- Основные паттерны:

-- CTEs для разбора сложных запросов
WITH monthly_revenue AS (
  SELECT 
    DATE_TRUNC('month', created_at) as month,
    SUM(amount) as revenue
  FROM orders
  GROUP BY DATE_TRUNC('month', created_at)
),
churn_analysis AS (
  SELECT user_id, COUNT(*) as orders
  FROM orders
  WHERE created_at >= NOW() - INTERVAL '90 days'
  GROUP BY user_id
)
SELECT * FROM monthly_revenue;

-- Window functions для когортного анализа
SELECT 
  user_id,
  created_at,
  ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY created_at) as order_number,
  LAG(created_at) OVER (PARTITION BY user_id ORDER BY created_at) as prev_order_date
FROM orders;

2. Базы данных

PostgreSQL — основная БД для аналитики

  • Работаю через psycopg2 из Python
  • Создаю индексы для оптимизации запросов
  • Использую EXPLAIN ANALYZE для профилирования

BigQuery (Google Cloud)

  • Масштабируемая аналитика больших объёмов
  • Стандартный SQL с расширениями Google
  • Интеграция с Data Studio для дашбордов

MongoDB (для неструктурированных данных)

  • Документно-ориентированное хранилище
  • Работаю через pymongo

3. Data Processing и ETL

pandas — король табличных данных

# Очистка и преобразование данных
df = pd.read_csv('data.csv')

# Удаление дубликатов
df = df.drop_duplicates(subset=['user_id', 'date'])

# Обработка пропусков
df['amount'].fillna(df['amount'].median(), inplace=True)

# Группировка и агрегация
monthly_stats = df.groupby('user_id').agg({
    'amount': ['sum', 'mean', 'count'],
    'date': ['min', 'max']
})

# Merge таблиц
result = df.merge(user_data, on='user_id', how='left')

Apache Spark (PySpark) — для больших объёмов

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, sum, count

spark = SparkSession.builder.appName('analytics').getOrCreate()
df = spark.read.parquet('s3://bucket/data/')

# Distributed computing
result = df.groupBy('category').agg(
    sum('amount').alias('total'),
    count('*').alias('count')
)
result.write.parquet('s3://bucket/output/')

4. Статистика и Machine Learning

scipy.stats — статистические тесты

from scipy.stats import ttest_ind, mannwhitneyu, chi2_contingency

# t-тест
stat, pval = ttest_ind(group1, group2)

# ANOVA
from scipy.stats import f_oneway
stat, pval = f_oneway(group1, group2, group3)

# Chi-square для категорий
chi2, pval, dof, expected = chi2_contingency(contingency_table)

scikit-learn — машинное обучение

from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split, cross_val_score

# Предсказание оттока (churn)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

score = cross_val_score(model, X, y, cv=5).mean()
print(f'CV Score: {score:.2f}')

5. Визуализация

Matplotlib + Seaborn — статические графики

import matplotlib.pyplot as plt
import seaborn as sns

# Стиль
sns.set_style('whitegrid')
sns.set_palette('husl')

# Distribution plot
fig, ax = plt.subplots(figsize=(12, 6))
sns.histplot(data=df, x='amount', hue='category', kde=True, ax=ax)
plt.title('Distribution of Amounts by Category')
plt.show()

# Correlation heatmap
sns.heatmap(df.corr(), annot=True, fmt='.2f', cmap='coolwarm')
plt.show()

Plotly — интерактивные графики

import plotly.express as px
import plotly.graph_objects as go

# Интерактивная временная серия
fig = px.line(df, x='date', y='revenue', color='category',
              title='Revenue Over Time')
fig.show()

# Scatter с hover информацией
fig = px.scatter(df, x='days_active', y='purchase_amount',
                 size='user_lifetime_value', color='country')
fig.show()

Google Data Studio / Tableau — дашборды

  • Подключение к BigQuery для реал-тайма
  • Интерактивные фильтры для stakeholders
  • Автоматические отчёты

6. Jupyter Notebooks и IDE

Jupyter Notebook — для EDA и прототипирования

  • Интерактивная разработка
  • Markdown-документация
  • Быстрые итерации с данными

VS Code — для production кода

  • Git интеграция
  • Python extensions
  • SQL инструменты

7. Version Control и Collaboration

Git/GitHub — управление кодом

# Типичный workflow
git clone https://github.com/company/analytics.git
git checkout -b feature/churn-analysis

# Работаю с данными и кодом
python analysis.py

# Commit и push
git add .
git commit -m "Add churn model with 85% AUC"
git push origin feature/churn-analysis

Slack — коммуникация с командой

  • Sharing insights
  • Alerts from automated jobs

8. Workflow и автоматизация

Apache Airflow / Prefect — оркестрация DAGs

from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime

def extract_data():
    """Extract data from PostgreSQL"""
    ...

def transform_data():
    """Transform and clean"""
    ...

def load_to_warehouse():
    """Load to BigQuery"""
    ...

dag = DAG('daily_analytics', start_date=datetime(2024, 1, 1))

extract = PythonOperator(task_id='extract', python_callable=extract_data)
transform = PythonOperator(task_id='transform', python_callable=transform_data)
load = PythonOperator(task_id='load', python_callable=load_to_warehouse)

extract >> transform >> load

Linux/Bash — скрипты и администрирование

# Cron job для ежедневного анализа
0 2 * * * /usr/bin/python /home/analyst/daily_report.py

# Запуск SQL запроса и сохранение результата
psql -h postgres.db.com -U analyst -d analytics \
  -f query.sql -o report.csv

9. Специализированные инструменты

Segment / Mixpanel — event tracking

  • Сбор пользовательского поведения
  • Когортный анализ
  • Funnel analysis

Amplitude — product analytics

  • Retention анализ
  • Cohort comparison
  • User journeys

Looker / Superset — альтернативные дашборды

  • LookML для повторного использования логики
  • Open-source Superset

10. Лучшие практики моего стека

Структура проекта:

analytics/
├── data/              # Raw data
├── sql/
│   ├── daily_extract.sql
│   ├── user_cohorts.sql
│   └── ...
├── notebooks/
│   ├── EDA_churn.ipynb
│   ├── AB_test_analysis.ipynb
│   └── ...
├── src/
│   ├── data_loader.py
│   ├── processors.py
│   └── models.py
├── tests/
│   └── test_processors.py
├── reports/
│   ├── daily_report.py
│   └── weekly_summary.py
└── requirements.txt

Requirements.txt для воспроизводимости:

pandas==2.0.3
numpy==1.24.3
scipy==1.11.0
scikit-learn==1.3.0
psycopg2-binary==2.9.7
plotly==5.17.0
jupyter==1.0.0
pytest==7.4.0

Навыки, которые развиваю

  • A/B тестирование — статистическое планирование и анализ
  • SQL оптимизация — EXPLAIN ANALYZE, индексы
  • Когортный анализ — Retention, LTV
  • Causal inference — контролирование конфаундеров
  • MLOps — модели в production

Вывод

Мой инструментарий выбран для максимальной продуктивности и скорости insights:

  • Python + SQL — основа работы
  • pandas + BigQuery — быстрая аналитика больших объёмов
  • Jupyter — для исследований
  • Plotly + Data Studio — для коммуникации
  • Git + Airflow — для масштабируемости

Когда выбираю инструмент, руководствуюсь:

  1. Что быстрее решает задачу?
  2. Кто ещё будет это использовать?
  3. Можно ли это масштабировать?