Skip to main content
Pandas — популярная библиотека Python для обработки и анализа данных. В chDB 2 мы повысили производительность выполнения запросов к DataFrame в Pandas и добавили табличную функцию Python. В этом руководстве мы рассмотрим, как выполнять запросы к Pandas с помощью табличной функции Python.

Подготовка

Сначала создадим виртуальное окружение:
А теперь установим chDB. Убедитесь, что у вас установлена версия 2.0.2 или выше:
Теперь установим Pandas и ещё пару библиотек:
Для запуска команд в оставшейся части руководства мы будем использовать ipython, который можно запустить так:
Вы также можете использовать этот код в Python-скрипте или в любимом ноутбуке.

Создание DataFrame в Pandas из URL

Мы выполним запрос к данным из репозитория StatsBomb на GitHub. Для начала импортируем requests и pandas:
Затем загрузим в DataFrame один из JSON‑файлов matches:
Давайте посмотрим, с какими данными мы будем работать:
Далее мы загрузим один из JSON‑файлов с событиями, а также добавим в этот DataFrame столбец match_id:
И снова посмотрим на первую строку:

Выполнение запросов к DataFrame в Pandas

Далее посмотрим, как выполнять запросы к этим DataFrame с помощью chDB. Для этого импортируем библиотеку:
Мы можем выполнять запросы к DataFrame в Pandas с помощью табличной функции Python:
Итак, если мы хотим вывести список столбцов в matches_df, можно написать следующее:
Затем мы можем узнать, какие судьи судили более одного матча, написав следующий запрос:
Теперь давайте изучим events_df.

Объединение DataFrame в Pandas

Мы также можем объединять DataFrames в запросе. Например, чтобы получить общее представление о матче, можно написать следующий запрос:

Заполнение таблицы из DataFrame

Мы также можем создавать и заполнять таблицы ClickHouse из DataFrame. Если мы хотим создать таблицу в chDB, нужно использовать API сеансов с сохранением состояния. Давайте импортируем модуль session:
Инициализируйте сеанс:
Далее создадим базу данных:
Затем создайте таблицу events на основе events_df:
Затем можно выполнить запрос, который вернёт игрока, получившего больше всего пасов:

Объединение DataFrame в Pandas и таблицы

Наконец, мы также можем изменить наш запрос с JOIN, чтобы объединить DataFrame matches_df с таблицей statsbomb.events:
Последнее изменение 23 июля 2026 г.