メインコンテンツへスキップ
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テーブルに結合するように、結合クエリを更新することもできます。