1.FugueSQL:PandasのDataFrameをSQL文で操作(2/2)まとめ
・SQL文を文字列して定義後、fsql(SQL).run()を呼ぶ事で実行する事ができる
・結果として返される型はfugue.dataframe形式であり自由に操作できる
・fugue-tutorials.readthedocs.ioのFugueSQLチュートリアルがある
2.FugueSQLの使い方
以下、www.kdnuggets.comより「Query Your Pandas DataFrames with SQL」の意訳です。元記事は2021年10月、Matthew Mayoさんの投稿です。
アイキャッチ画像のクレジットはPhoto by Xavier von Erlach on Unsplash
例2:どの本が500以上の価値がありますか?
2番目のサンプルコードを見てみましょう。ここでは、この記事の発行時のグレードと現在の市場を考慮して、これらの本のどれが500ドルを超える価値があるかを確認します。
ここでも、最初にSQL構文を定義してから、FugueSQLエンジンを使用して実行します。
# which of my books are valued above 500? query_2 = """ SELECT book, publisher, grade, value FROM comics_df WHERE value > 500 PRINT """ fsql(query_2).run()
結果は以下です。
PandasDataFrame book:str |publisher:str|grade:double|value:long --------------------------------------------------------------+-------------+------------+---------- Tomb of Dracula 10 |Marvel |5.0 |2500 New Mutants 98 |Marvel |8.0 |600 Amazing Spider-Man 300 |Marvel |6.5 |750 Total count: 3
DataFrame内の本のうち、3冊は500ドル以上の価値があります。 これらのそれぞれは、3つの非常に人気のあるキャラクターBlade the Vampire Hunter、Deadpool、Venomが最初に完全に登場した本であり、比較的高い価値につながります。
例3:Imageによって出版された本はどれですか?
最後の例として、これらのコミックのどれがImageComicsによって発行されたかを見てみましょう。
# which of my books are published by Image? query_3 = """ SELECT book, publisher, grade, value FROM comics_df WHERE publisher = 'Image' PRINT """ fsql(query_3).run()
PandasDataFrame book:str |publisher:str|grade:double|value:long --------------------------------------------------------------+-------------+------------+---------- Department of Truth 1 |Image |9.8 |175 Total count: 1
1冊だけ当てはまるものがあります。陰謀論に対する大衆の信仰が実際に現実を変えてしまうという考えに基づき、見事な文章で描かれた現代の傑作「Department of Truth 1」は、これらの本の中で唯一Image社から出版されています。
また、返されたクエリ結果のデータタイプは何でしょうか?上記のクエリを再実行し、変数に格納して、その型を調べてみましょう。
result = fsql(query_3).run() print(type(result))
fugue.dataframe.dataframes.DataFrames
返される結果は、fugue.dataframe形式です。fugue.dataframeの詳細と、返された結果をさらに処理する方法については、fugue.readthedocs.ioをご覧ください。
その他の例については、fugue-tutorials.readthedocs.ioのFugueSQLチュートリアルを参照してください。
3.FugueSQL:PandasのDataFrameをSQL文で操作(2/2)関連リンク
1)www.kdnuggets.com
Query Your Pandas DataFrames with SQL
2)fugue-tutorials.readthedocs.io
FugueSQL
3)www.youtube.com
小フーガ ト短調 BWV578 (バッハ)