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