Skip to main content
Pandasは、Pythonでデータの操作や分析を行うための広く使われているライブラリです。 chDBのバージョン2では、Pandas DataFrameに対するクエリのパフォーマンスが向上し、Python テーブル関数が導入されました。 このガイドでは、Python テーブル関数を使ってPandasをクエリする方法を学びます。

セットアップ

まず、仮想環境を作成します。
それでは、chDB をインストールしましょう。 バージョン 2.0.2 以降であることを確認してください。
では次に、Pandas とその他いくつかのライブラリをインストールします。
このあとのガイドでは、コマンドの実行に ipython を使用します。次を実行して起動できます。
このコードは、Pythonスクリプトやお好みのノートブックでも使用できます。

URLからPandas DataFrameを作成する

StatsBomb GitHubリポジトリからデータをいくつか取得してみましょう。 まずは、requestsとpandasをインポートします。
次に、matches JSON ファイルの 1 つを DataFrame に読み込みます。
それでは、これから扱うデータを見てみましょう。
次に、events の JSON ファイルの1つを読み込み、その DataFrame に match_id というカラムを追加します:
では、最初の行をもう一度見てみましょう:

Pandas DataFrame をクエリする

次に、chDB を使ってこれらの DataFrame をクエリする方法を見ていきます。 ライブラリをインポートします:
Python テーブル関数を使うと、Pandas の DataFrame をクエリできます:
したがって、matches_df のカラムを一覧表示するには、次のように書けます。
次のクエリを記述すれば、2試合以上を担当した審判を確認できます。
では、events_dfを見てみましょう。

Pandas DataFrameの結合

クエリ内でDataFrame同士を結合することもできます。 たとえば、試合の概要を取得するには、次のようなクエリを記述できます。

DataFrame から テーブル にデータを投入する

DataFrame から ClickHouse テーブル を作成し、データを投入することもできます。 chDB で テーブル を作成するには、Stateful Session API を使用する必要があります。 session モジュールをインポートしましょう:
セッションを初期化します:
次に、データベースを作成します。
次に、events_df を基に events テーブルを作成します。
次に、最も多くパスを受けた選手を返すクエリを実行できます。

Pandas DataFrameとテーブルの結合

最後に、matches_df DataFrameをstatsbomb.eventsテーブルに結合するように、結合クエリを更新することもできます。
最終更新日 2026年7月23日