Нейросеть для анализа таблиц: CSV и Excel через API без ошибок в цифрах
Как анализировать CSV и Excel с помощью модели через API: числа считает pandas, модель ищет закономерности и пишет выводы в JSON, а код проверяет, что каждый вывод опирается на реальную метрику.
6 мин · · автоматизация · разработка
«Нейросеть для анализа таблиц» ищут аналитики и разработчики, у которых есть выгрузка продаж, заказов или отзывов, а времени разбирать её вручную нет. Соблазн простой: отправить модели весь CSV и спросить «что тут интересного». Ниже — почему так делать не стоит, как подготовить данные в pandas, что отправлять вместо целой таблицы, как получить ответ в JSON и сколько стоит такой анализ.
Почему нельзя просто отправить всю таблицу
Три причины.
Арифметика. Языковая модель генерирует текст, а не выполняет вычисления. Сумму по тысячам строк, среднее, процент роста или количество строк с условием она может назвать правдоподобно, но неверно. Чем больше строк, тем выше риск. Поэтому правило одно: все числа считает код, модель их интерпретирует.
Размер. Таблица в токенах занимает много. Допустим, строка с пятью-шестью колонками — около 30 токенов (точное число для своих данных узнайте по usage.prompt_tokens на пробных 100 строках). Тогда 10 000 строк — около 300 000 токенов входа, а 50 000 строк — около 1,5 млн, это больше контекста в 1M у любой модели из каталога Zukko.
Цена. Даже если таблица помещается, вы платите за каждый токен входа при каждом вопросе. Расчёт ниже.
Нейросеть для анализа таблиц: pandas считает, модель объясняет
- Загрузить таблицу в pandas и почистить: типы, пропуски, дубликаты.
- Посчитать кодом метрики, которые нужны для ответа: итоги, разрезы по месяцам и категориям, доли, пропуски.
- Отправить модели выжимку: метрики в JSON и 10–20 случайных строк, чтобы она понимала структуру.
- Попросить ответ строго в JSON, где каждый вывод ссылается на ключ метрики.
- Проверить кодом, что ключи существуют, и подставить настоящие значения.
Модель здесь делает то, что у неё получается: замечает закономерности, формулирует гипотезы, предлагает, что проверить дальше. Цифры в отчёте всегда из pandas.
Подготовка CSV и Excel в pandas
CSV читается через pd.read_csv, Excel — через pd.read_excel. Для файлов .xlsx нужен пакет openpyxl (pip install pandas openpyxl). Параметр sheet_name выбирает лист; sheet_name=None вернёт словарь со всеми листами.
Перед отправкой стоит:
- привести даты и числа к правильным типам (
parse_dates,pd.to_numeric(..., errors="coerce")); - посчитать пропуски по колонкам — модель должна знать, где данные неполные;
- убрать колонки с персональными данными (ФИО, телефоны, email), если они не нужны для вывода: случайные строки уходят в запрос как есть.
Пример: анализ выгрузки продаж
Файл sales.csv с колонками date, region, revenue. Скрипт считает метрики, отправляет выжимку и проверяет ответ:
import json
import pandas as pd
from openai import OpenAI
df = pd.read_csv("sales.csv", parse_dates=["date"]) # Excel: pd.read_excel(путь, sheet_name=...)
df["month"] = df["date"].dt.to_period("M").astype(str)
metrics = { # все числа считает pandas
"rows": int(len(df)),
"revenue_total": round(float(df["revenue"].sum()), 2),
"avg_order": round(float(df["revenue"].mean()), 2),
}Что здесь важно:
- Срез
text.find("{")…rfind("}")отрезает возможные пояснения или обёртку ```json вокруг объекта. Еслиjson.loadsвсё равно падает, повторите запрос или посмотрите статью о строгом JSON-ответе — там разобран способ черезtools. - Поле
metricсвязывает каждый вывод с числом из pandas. Вывод без существующей метрики помечается как неподтверждённый, а значения в отчёте берутся из словаряmetrics, а не из текста модели. next_checks— список того, что модель предлагает посчитать дальше. Посчитайте это кодом и при необходимости отправьте второй запрос с новыми метриками.
Где модели ошибаются и что считать кодом
Отдавайте коду всё, где есть вычисление или точный подсчёт:
- суммы, средние, медианы, проценты и темпы роста;
- количество строк по условию («сколько заказов дороже 10 000»);
- сортировку и топы по длинным спискам;
- среднее от средних и доли от разных базисов — частая ловушка и для людей;
- операции с датами: разницы, недели, сезонность.
Модели можно отдать формулировку выводов, поиск аномалий в уже посчитанных разрезах, гипотезы («провал в октябре может объясняться неполным месяцем — данные до 5-го числа»), классификацию текстовых колонок и черновик отчёта. Если хотите, чтобы модель предлагала код для расчёта, запускайте его только после просмотра или в изолированной среде.
Сколько стоит анализ таблицы через API
Цены на 7 октября 2026, $ за 1M токенов. Формула для одного запроса: (вход × цена входа + выход × цена выхода) / 1 000 000.
Выжимка вместо таблицы. Метрики и 20 строк — около 3 000 токенов входа, ответ — около 800 токенов.
gpt-6.1-sol($0.27 / $1.32): (3 000 × 0.27 + 800 × 1.32) / 1 000 000 = (810 + 1 056) / 1 000 000 ≈ $0.0019 за отчёт.gemini-3.8-flash($0.063 / $0.288): (3 000 × 0.063 + 800 × 0.288) / 1 000 000 = (189 + 230.4) / 1 000 000 ≈ $0.00042.
Вся таблица. 10 000 строк по 30 токенов = 300 000 токенов входа и те же 800 на выходе.
gpt-6.1-sol: (300 000 × 0.27 + 800 × 1.32) / 1 000 000 = (81 000 + 1 056) / 1 000 000 ≈ $0.082 за каждый вопрос — и без гарантии верных сумм.
Построчная обработка текста. Если в таблице есть колонка с комментариями, которую нужно разметить (тема, тональность), это отдельная задача: каждая строка — короткий запрос к дешёвой модели. 5 000 строк по 150 токенов входа и 20 выхода:
deepseek-v4.1-flash($0.013 / $0.038): 5 000 × (150 × 0.013 + 20 × 0.038) / 1 000 000 = 5 000 × 2.71 / 1 000 000 ≈ $0.014;gemini-3.8-flash: 5 000 × (150 × 0.063 + 20 × 0.288) / 1 000 000 = 5 000 × 15.21 / 1 000 000 ≈ $0.076.
Качество разметки у моделей разное — прогоните 50–100 строк с эталонными ответами и сравните. Подробный пример построчной разметки — в статье анализ отзывов от CSV к выводам, похожая схема для входящих писем — в статье нейросеть для разбора почты. Актуальный список и цены — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете.
Если хотите попробовать на своей выгрузке, создайте ключ на странице API-ключей; справка по запросам — в документации chat/completions.
Частые вопросы
Какая нейросеть для анализа таблиц подходит лучше?
Если модель только интерпретирует посчитанные метрики, начните с недорогой и сравните её с более сильной на нескольких своих выгрузках. Ориентир — индекс силы в каталоге (например, GPT-6.1 Sol — 52, Gemini 3.8 Flash — 41), но решает проверка на ваших данных.
Можно ли отправить Excel-файл напрямую?
В чат-запрос уходит текст, поэтому файл сначала читают в pandas (pd.read_excel, нужен openpyxl) и превращают в метрики и CSV-фрагмент. Так вы контролируете, что именно и в каком объёме попадает к модели.
Что делать, если модель всё-таки выдумала число?
Не брать числа из текста модели вообще. В примере выше значения подставляются из словаря metrics, а вывод без существующего ключа помечается как неподтверждённый.
Как отправить таблицу больше миллиона токенов?
Никак целиком — и не нужно. Сведите её к агрегатам в pandas; если нужен разбор каждой строки, обрабатывайте строки пачками отдельными запросами.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Перевод субтитров нейросетью: SRT без сбитых таймкодовГлавный риск при переводе SRT нейросетью — сломанная структура файла. Показываем схему, где таймкоды не попадают к модели, и скрипт на Python с проверкой.
- Редактирование текстов нейросетью: корректура, стиль и сокращениеРазные виды редактуры требуют разных промптов. Показываем формулировки для корректуры, стиля и сокращения, как получать правки с объяснением и не терять авторский голос.
- Нейросеть для написания скриптов: Bash, PowerShell и PythonМодель быстро пишет скрипты для рутины, но запускать их вслепую нельзя. Показываем, как ставить задачу, требовать безопасный режим dry-run и проверять результат до запуска.
- Dify в Docker: установка, первичная настройка и подключение моделейСтавим Dify через Docker Compose, создаём администратора и подключаем модели Claude, GPT и DeepSeek по одному ключу. Отдельно — что делать, если контейнеры не стартуют.