Автоматизация аналитики данных: Python-скрипт с Claude API | AiManual
AiManual Logo Ai / Manual.
05 Мар 2026 Гайд

Автоматизация аналитики: готовый Python-скрипт на 75 строк для замены аналитика с помощью Claude API и pandas

Готовый скрипт на Python для автоматического анализа финансовых отчетов с помощью Claude API и pandas. Экономит часы работы аналитика.

Твой аналитик скучает. Твой ноутбук - тоже

Каждый месяц одно и то же. Выгружаешь продажи из CRM, транши из 1С, рекламные расходы из Яндекс.Директа. Файлы в CSV, XLSX, кто во что горазд. Три часа на то, чтобы привести всё к одному виду, ещё два - на сводные таблицы и графики. И последний час уходит на то, чтобы написать внятный вывод для отчёта руководству.

Знакомо? Я потратил на это пять лет своей жизни. Пока не написал скрипт, который делает всё за 30 секунд. И сейчас я не просто расскажу о концепции. Я отдам его целиком - 75 строк кода, которые ты скопируешь и запустишь сегодня же. Аналитика, которая раньше занимала день, теперь укладывается в пару минут. И да, это работает не в теории, а на данных твоего бизнеса.

Скажи честно. Ты уже пытался использовать ChatGPT для анализа таблиц. Вставлял кусок CSV в окно чата и просил "проанализируй". Результат был посредственным, контекст ограниченным, а про приватность данных лучше не вспоминать. Наш подход другой.

Почему именно Claude + pandas, а не Excel на стероидах?

Потому что Excel умирает от объёма. Когда у тебя 50 000 строк транзакций, 15 источников данных и нужно сравнивать динамику по 20 метрикам одновременно - сводные таблицы начинают лагать. Мастер диаграмм предлагает те же шаблонные варианты. А формула XLOOKUP ломается при первом же несовпадении форматов дат.

Pandas - это кузнечный молот для данных. Он жуёт миллионы строк без потения. Но сам по себе он немой. Он не скажет тебе: "Смотри, в марте выросли CAC на 40% при сохранении LTV, это значит, что канал TikTok стал менее эффективным". Для этого нужен мозг. И вот тут в игру входит Claude - одна из самых умных и актуальных LLM на 2026 год, с контекстом в 200k токенов и способностью понимать структурированные данные.

💡
Прямо сейчас, в марте 2026 года, актуальная версия Claude API от Anthropic - это Claude 3.7 Sonnet с расширенным контекстом и улучшенной работой с числовыми данными. Она существенно дешевле Opus для batch-обработки, а точность в аналитических задачах у них сравнялась. Мы используем именно её.

1 Что тебе нужно перед запуском: три кита

Никаких Docker, Kubernetes и облачных развёртываний. Только питон на твоей машине.

  • Python 3.10+. Если у тебя стоит 3.8 - обновляй. На 3.8 не будет работать f-string с equals signs, и ты потратишь час на поиск бага.
  • API-ключ от Anthropic. Регистрация на платформе занимает 5 минут. Базовый кредит дают сразу. Для нашего скрипта хватит надолго - один запуск стоит копейки. (Прямая ссылка: Anthropic Platform, но я не партнёр, так что гугли сам).
  • Данные. Любой CSV или Excel файл. Столбцы могут называться как угодно - скрипт разберётся.

2 Сердце системы: 75 строк, которые заменяют джуна

Весь код ниже - это один файл analyst.py. Копируй, вставляй, подставляй свой API-ключ. Я разберу каждую значимую часть.

#!/usr/bin/env python3
"""
Автоматический аналитик на Claude API и pandas.
Загружает CSV/Excel, анализирует и генерирует отчёт.
Требует: pandas, anthropic, openpyxl (для Excel)
"""

import pandas as pd
import anthropic
import json
import sys
from pathlib import Path
from typing import Optional

# --- КОНФИГУРАЦИЯ ---
CLAUDE_API_KEY = "sk-ant-..."  # ВСТАВЬ СВОЙ КЛЮЧ ЗДЕСЬ
MODEL = "claude-3-7-sonnet-20250226"  # Актуальная модель на март 2026
MAX_TOKENS = 4000

def load_data(file_path: str) -> Optional[pd.DataFrame]:
    """Загружает CSV или Excel файл."""
    path = Path(file_path)
    if not path.exists():
        print(f"Файл {file_path} не найден.")
        return None
    
    try:
        if path.suffix == '.csv':
            df = pd.read_csv(file_path, encoding='utf-8', on_bad_lines='skip')
        elif path.suffix in ['.xlsx', '.xls']:
            df = pd.read_excel(file_path, engine='openpyxl')
        else:
            print("Поддерживаются только CSV и Excel файлы.")
            return None
        print(f"Загружено: {len(df)} строк, {len(df.columns)} столбцов")
        return df
    except Exception as e:
        print(f"Ошибка загрузки: {e}")
        return None

def analyze_with_claude(df: pd.DataFrame, api_key: str) -> str:
    """Отправляет структурированные данные в Claude для анализа."""
    client = anthropic.Anthropic(api_key=api_key)
    
    # Подготовка снимка данных для Claude
    data_summary = {
        "shape": df.shape,
        "columns": list(df.columns),
        "dtypes": {col: str(dtype) for col, dtype in df.dtypes.items()},
        "sample": df.head(5).to_dict(orient='records'),
        "stats": df.describe(include='all').fillna('N/A').to_dict()
    }
    
    prompt = f"""Ты - старший финансовый аналитик. Проанализируй предоставленные данные и дай развернутый отчёт.

Данные:
{json.dumps(data_summary, indent=2, ensure_ascii=False)}

Задание:
1. Определи, что представляют собой данные (продажи, транзакции, логи и т.д.).
2. Выдели ключевые метрики (объём, рост, средние значения, аномалии).
3. Найди 3 самых важных инсайта.
4. Сформулируй 2 рекомендации для бизнеса.
5. Укажи на потенциальные проблемы в данных (пропуски, выбросы).

Отчёт должен быть структурированным, кратким и готовым для презентации руководителю."""
    
    try:
        message = client.messages.create(
            model=MODEL,
            max_tokens=MAX_TOKENS,
            messages=[{"role": "user", "content": prompt}]
        )
        return message.content[0].text
    except anthropic.APIConnectionError:
        return "Ошибка: не удалось подключиться к Claude API. Проверь интернет и ключ."
    except anthropic.AuthenticationError:
        return "Ошибка: неверный API-ключ. Проверь CLAUDE_API_KEY в скрипте."
    except Exception as e:
        return f"Неожиданная ошибка API: {e}"

def save_report(report: str, filename: str = "claude_analysis_report.txt"):
    """Сохраняет отчёт в текстовый файл."""
    with open(filename, 'w', encoding='utf-8') as f:
        f.write(report)
    print(f"Отчёт сохранён в {filename}")

def main():
    """Основная функция."""
    if len(sys.argv) != 2:
        print("Использование: python analyst.py <путь_к_файлу.csv/.xlsx>")
        return
    
    file_path = sys.argv[1]
    df = load_data(file_path)
    
    if df is None:
        print("Не удалось загрузить данные. Выход.")
        return
    
    print("Анализ данных с помощью Claude...")
    report = analyze_with_claude(df, CLAUDE_API_KEY)
    
    print("\n" + "="*60)
    print("ОТЧЁТ АНАЛИТИКА")
    print("="*60)
    print(report)
    print("="*60)
    
    save_report(report)

if __name__ == "__main__":
    main()

Видишь магию? Скрипт не просто кидает сырые данные в API. Он сначала создаёт интеллектуальный снимок: структуру, типы столбцов, статистику, пример записей. Это уменьшает объём передаваемых данных в 100 раз и даёт Claude чёткий контекст. Именно так работает профессиональная аналитика, а не копипаста всей таблицы в чат.

3 Запуск и первый отчёт: быстрее, чем сходить за кофе

Открой терминал в папке со скриптом и данными.

pip install pandas anthropic openpyxl
python analyst.py sales_2025.csv

Через 10-30 секунд ты увидишь готовый отчёт в терминале и в файле claude_analysis_report.txt. Всё. Никаких дополнительных шагов.

Скрипт написан с учётом последних изменений в API Anthropic на начало 2026 года. В нём используется новый стабильный клиент anthropic.Anthropic и актуальная модель claude-3-7-sonnet. Если просто скопировать примеры из старых статей 2024 года, они не сработают.

Где собака зарыта: ошибки, которые ты совершишь

Я знаю, ты проигнорируешь этот раздел и полезешь в код. Потом потратишь два часа на отладку. Не делай так.

  • Ключ API в коде. Это демо. В продакшене никогда не хардкодь ключи. Используй переменные окружения (os.getenv('CLAUDE_API_KEY')) или .env файлы. Иначе первый же коммит в публичный репозиторий обнулит твой счёт.
  • Кодировка CSV. Скрипт использует UTF-8. Если у тебя файл из старого 1С в windows-1251, он сломается. Добавь параметр encoding='cp1251' в pd.read_csv.
  • Большие файлы. Если у тебя 500 МБ данных, df.describe() может съесть всю память. Добавь фильтр по периоду или выгрузку только ключевых столбцов перед анализом. Или используй более продвинутые техники из нашей статьи про 10 элегантных способов фильтрации Pandas DataFrame.
  • Лимиты токенов. Мы передаём только дайджест, но если у тебя 500 столбцов, даже сводка будет большой. Добавь логирование: print(f"Отправлено в Claude: {len(json.dumps(data_summary))} символов").

Сделай из скрипта монстра: 3 апгрейда на следующей неделе

Базовый вариант работает. Но мир не стоит на месте.

  1. Автоматизация пайплайна. Подключи скрипт к Airflow или Prefect. Пусть он сам запускается 1-го числа каждого месяца, скачивает свежий отчёт из Google Sheets через API, анализирует и отправляет вывод в Slack. Техники из статьи про Claude Opus 4.5 и интеграции с Excel помогут.
  2. Визуализация. Claude отлично генерирует вывод, но графики пока не рисует. Добавь блок, где на основе инсайтов скрипт автоматически строит диаграммы через matplotlib или Plotly и сохраняет их в PNG. Потом вставь эти картинки в PowerPoint-отчёт. Звучит как фантастика? Это уже работает.
  3. Почтовый робот. Модифицируй save_report, чтобы он не только писал в файл, но и отправлял красивый HTML-отчёт на почту директору и отделу маркетинга. Используй библиотеку emails или интеграцию с почтовым сервисом.
💡
Самый частый вопрос: "А если у меня несколько файлов для консолидации?" Ответ - используй pd.concat после загрузки каждого. Но помни про разные форматы столбцов. Лучше сначала привести их к единому виду с помощью словаря маппинга. Или поручить эту задачу самому Claude, передав ему описания всех источников, как в кейсе Claude Agent SDK для бизнес-аналитики.

Сколько это стоит и что делать, если счёт летит в космос

На момент марта 2026 года анализ одного файла среднего размера (10k строк) через Claude 3.7 Sonnet стоит около $0.02 - $0.05. Месячная подписка на Junior-аналитика в Москве начинается от 80 000 рублей. Математика простая.

Но если запускать скрипт в цикле по 1000 файлов, счёт может удивить. Всегда добавляй лимит токенов (MAX_TOKENS) и мониторь расход через панель Anthropic. Если заметил аномалию - сразу смотри логи. У нас есть целая статья про то, как токены утекают сквозь пальцы. Основные причины: бесконечные циклы из-за ошибок и слишком детальные промпты.

И последнее: ты не заменишь аналитика. Ты его усилишь

Этот скрипт не увольняет людей. Он освобождает их от рутины. Вместо того чтобы копаться в Excel, твой аналитик теперь может делать то, что действительно важно: строить стратегические модели, общаться с отделами, искать новые источники данных. И да, он всё равно будет нужен, чтобы проверять выводы ИИ. Потому что слепо доверять чёрному ящику - последнее дело.

Скопируй код. Запусти его на своих вчерашних данных. Увидишь, что 80% аналитической работы уже можно автоматизировать. Остальные 20% - это как раз то, за что тебе и платят.

Подписаться на канал