How to query Pandas DataFrames with chDB
Pandas は、Python におけるデータ操作と分析のための人気のあるライブラリです。
chDB のバージョン 2 では、Pandas DataFrame のクエリ性能を向上させ、Python
テーブル関数を導入しました。
このガイドでは、Python
テーブル関数を使用して Pandas にクエリを実行する方法を学びます。
セットアップ
まず、仮想環境を作成しましょう:
次に、chDB をインストールします。
バージョン 2.0.2 以上を持っていることを確認してください:
次に、Pandas といくつかの他のライブラリをインストールします:
これからのガイドのコマンドを実行するために ipython
を使用します。以下のコマンドで起動できます:
Python スクリプトやあなたのお気に入りのノートブックでもコードを使用できます。
URL から Pandas DataFrame を作成する
StatsBomb GitHub リポジトリ からデータをクエリします。
まず、requests と pandas をインポートします:
次に、1 つの試合の JSON ファイルを DataFrame に読み込みます:
どのデータを扱うのか見てみましょう:
次に、1 つのイベントの JSON ファイルを読み込み、その DataFrame に match_id
という列を追加します:
再度、最初の行を見てみましょう:
Pandas DataFrame をクエリする
次に、chDB を使ってこれらの DataFrame にクエリを実行する方法を見てみましょう。
ライブラリをインポートします:
Pandas DataFrame を Python
テーブル関数を使用してクエリすることができます:
したがって、matches_df
のカラムをリストアップしたい場合、次のように書くことができます:
次に、過去に 1 回以上の試合を裁いた審判を見つけるために、以下のクエリを書くことができます:
次に、events_df
を見てみましょう。
Pandas DataFrame を結合する
クエリ内で DataFrame を結合することもできます。
たとえば、試合の概要を得るために、以下のクエリを書くことができます:
DataFrame からテーブルを作成する
DataFrame から ClickHouse テーブルを作成して populate することも可能です。
chDB にテーブルを作成するには Stateful Session API を使用する必要があります。
セッションモジュールをインポートしましょう:
セッションを初期化します:
次に、データベースを作成します:
次に、events_df
に基づいて events
テーブルを作成します:
その後、最も多くのパスを受け取った選手を返すクエリを実行します:
Pandas DataFrame とテーブルを結合する
最後に、結合クエリを更新して matches_df
DataFrame を statsbomb.events
テーブルと結合することもできます: