Создание продвинутого интерактивного рабочего процесса для исследовательского анализа данных с помощью PyGWalker и данных с инженерными признаками

В этом руководстве мы покажем, как выйти за рамки статических графиков с большим количеством кода и создать по-настоящему интерактивный рабочий процесс для исследовательского анализа данных непосредственно с помощью PyGWalker.

Подготовка данных

Мы начнём с подготовки набора данных «Титаник» для крупномасштабных интерактивных запросов. Эти специально подготовленные для анализа признаки выявляют базовую структуру данных, позволяя одновременно исследовать данные как на уровне отдельных строк, так и на уровне агрегированных представлений.

Встраивание интерфейса перетаскивания в стиле Tableau непосредственно в блокнот позволяет быстро тестировать гипотезы, интуитивно сравнивать когорты и эффективно проверять качество данных — и всё это без необходимости переключения между кодом и инструментами визуализации.

Код для установки зависимостей

«`python
import sys, subprocess, json, math, os
from pathlib import Path

def pip_install(pkgs):
subprocess.check_call([sys.executable, «-m», «pip», «install», «-q»] + pkgs)

pip_install([
«pygwalker>=0.4.9»,
«duckdb>=0.10.0»,
«pandas>=2.0.0»,
«numpy>=1.24.0»,
«seaborn>=0.13.0»
])
«`

Предварительная обработка данных

«`python
import numpy as np
import pandas as pd
import seaborn as sns

dfraw = sns.loaddataset(«titanic»).copy()
print(«Raw shape:», df_raw.shape)
display(df_raw.head(3))
«`

Интеграция PyGWalker

Мы интегрируем PyGWalker для преобразования наших подготовленных таблиц в полностью интерактивный аналитический интерфейс с возможностью перетаскивания. Мы сохраняем спецификацию визуализации, чтобы макеты информационных панелей и кодировки сохранялись при перезапуске блокнотов. Это превращает блокнот в многократно используемую среду для изучения данных в стиле BI.

«`python
import pygwalker as pyg

SPECPATH = Path(«/content/pygwalkerspec_titanic.json»)

def load_spec(path):
if path.exists():
try:
return json.loads(path.read_text())
except Exception:
return None
return None

def savespec(path, specobj):
try:
if isinstance(spec_obj, str):
specobj = json.loads(specobj)
path.writetext(json.dumps(specobj, indent=2))
return True
except Exception:
return False

def launchpygwalker(df, specpath):
spec = loadspec(specpath)
kwargs = {}
if spec is not None:
kwargs[«spec»] = spec

try:
walker = pyg.walk(df, usekernelcalc=True, kwargs)
except TypeError:
walker = pyg.walk(df, kwargs) if spec is not None else pyg.walk(df)

captured = None
for attr in [«spec», «_spec»]:
if hasattr(walker, attr):
try:
captured = getattr(walker, attr)
break
except Exception:
pass
for meth in [«tospec», «exportspec», «get_spec»]:
if captured is None and hasattr(walker, meth):
try:
captured = getattr(walker, meth)()
break
except Exception:
pass

if captured is not None:
savespec(specpath, captured)

return walker

walkerrows = launchpygwalker(dfforui, SPEC_PATH)
walker_agg = pyg.walk(agg)
«`

Cloudflare выпускает Agents SDK v0.5.0

Cloudflare выпустила Agents SDK v0.5.0 для решения проблем, связанных с использованием бессерверных функций без состояния в разработке искусственного интеллекта. В стандартных бессерверных архитектурах каждый вызов LLM требует восстановления контекста сеанса с нуля, что увеличивает задержки и потребление токенов.

Управление состоянием с помощью Durable Objects

Agents SDK использует Durable Objects (DO) для обеспечения постоянной идентичности и памяти для каждого экземпляра агента. В традиционных бессерверных моделях функции не сохраняют память о предыдущих событиях, если они не запрашивают внешнюю базу данных, например, RDS или DynamoDB, что часто добавляет от 50 мс до 200 мс задержки.

Оптимизация вывода с помощью Infire

Для уровня вывода Cloudflare разработала Infire, движок LLM, написанный на Rust, который заменяет стеки на основе Python, такие как vLLM. Python-движки часто сталкиваются с узкими местами производительности из-за глобальной блокировки интерпретатора (GIL) и пауз при сборке мусора. Infire предназначен для максимального использования GPU на оборудовании H100 за счёт снижения нагрузки на процессор.

Код Mode и эффективность использования токенов

Стандартные агенты искусственного интеллекта обычно используют «вызов инструментов», когда LLM выводит объект JSON для запуска функции. Этот процесс требует взаимодействия между LLM и средой выполнения для каждого используемого инструмента. Режим кода Cloudflare меняет это, предлагая LLM написать программу на TypeScript, которая управляет несколькими инструментами одновременно.

Этот код выполняется в защищённом изолированном пространстве V8. Для сложных задач, таких как поиск в 10 разных файлах, режим кода обеспечивает сокращение использования токенов на 87,5%. Поскольку промежуточные результаты остаются в песочнице и не отправляются обратно в LLM на каждом шаге, процесс становится быстрее и экономичнее.

Ключевые выводы

  • Состояние на границе: в отличие от традиционных бессерверных функций без состояния, Agents SDK использует Durable Objects для предоставления агентам постоянной идентичности и памяти.

  • Высокоэффективный вывод на Rust: движок Infire, написанный на Rust, оптимизирует использование GPU, используя детальные графы CUDA для сокращения нагрузки на процессор на 82%.

  • Оптимизация использования токенов через Code Mode: «Режим кода» позволяет агентам писать и выполнять программы на TypeScript в защищённом изолированном пространстве V8, что снижает потребление токенов на 87,5% для сложных задач.

  • Универсальная интеграция инструментов: платформа полностью поддерживает протокол Model Context Protocol (MCP), стандарт, который действует как универсальный переводчик для инструментов искусственного интеллекта.

  • Утилиты для производственных систем (v0.5.0): февральский выпуск 2026 года представил важные функции надёжности, включая утилиту this.retry() для асинхронных операций с экспоненциальным откатом и дрожанием.

1. Какие преимущества предоставляет использование PyGWalker для исследовательского анализа данных?

Использование PyGWalker позволяет создать интерактивный рабочий процесс для исследовательского анализа данных, который выходит за рамки статических графиков и большого количества кода. Это обеспечивает быстрое тестирование гипотез, интуитивное сравнение когорт и эффективную проверку качества данных без необходимости переключения между кодом и инструментами визуализации.

2. Какие шаги включает в себя предварительная обработка данных перед использованием PyGWalker?

Предварительная обработка данных включает в себя загрузку набора данных, например, «Титаник», с помощью pandas и печать информации о форме данных и первых нескольких строках. Это позволяет исследователю получить представление о структуре данных перед их анализом с помощью PyGWalker.

3. Какие инструменты и библиотеки используются для установки зависимостей в данном руководстве?

Для установки зависимостей используются следующие инструменты и библиотеки:
* `sys` для работы с системными функциями;
* `subprocess` для выполнения команд в подпроцессе;
* `json` для работы с JSON;
* `math` для математических функций;
* `os` для работы с операционной системой;
* `pathlib` для работы с путями файлов;
* `pip_install` для установки пакетов с помощью pip;
* `pygwalker` для создания интерактивного рабочего процесса;
* `duckdb`, `pandas`, `numpy`, `seaborn` для анализа данных.

4. Какие функции выполняет функция `load_spec` в данном коде?

Функция `load_spec` загружает спецификацию визуализации из указанного пути. Если файл существует, функция пытается загрузить его содержимое в формате JSON. Если файл не существует или возникает ошибка при чтении, функция возвращает `None`.

5. Какие преимущества предоставляет использование Agents SDK v0.5.0 для разработки искусственного интеллекта?

Agents SDK v0.5.0 использует Durable Objects для обеспечения постоянной идентичности и памяти для каждого экземпляра агента, что решает проблемы, связанные с использованием бессерверных функций без состояния. Это позволяет оптимизировать вывод с помощью Infire, движка LLM, написанного на Rust, который заменяет стеки на основе Python и обеспечивает максимальное использование GPU на оборудовании H100. Кроме того, режим кода Cloudflare позволяет агентам писать и выполнять программы на TypeScript в защищённом изолированном пространстве V8, что снижает потребление токенов на 87,5% для сложных задач.

Источник