generated at
ibis-framework を試してみた
Ibis-framework2022/10/15PyCon JP 2022 基調講演で聞いたので、触ってみました。
ibisは「分析に便利なツール」らしい。
shimizukawa ibisでデータを読み込んで、joinや集計をして、分析結果をJupyterに整形して出す、という使い方に合っていそう


インストール
pip install ibis-framework
間違えて pip install ibis してしまったが全然関係ない別物なので間違えないように...!
MySQLと繋ぐ場合
pip install 'ibis-framework[mysql]'
PostgreSQLと繋ぐ場合
pip install 'ibis-framework[postgres]'

実行
python
import ibis ibis.options.interactive = True conn = ibis.mysql.connect(user='root', password='mysql', database='db') tables = conn.list_tables() t = conn.tables('some_table') t.group_by(['genre']).aggregate(count=t.count()).sort_by([ibis.desc('count')]).limit(10) genre count 0 NaN 9429 1 1.0 2543 2 8.0 1557 3 2.0 1435 4 18.0 1401 5 3.0 1396 6 15.0 1227 7 13.0 1157 8 21.0 1106 9 5.0 1017


shimizukawa感想 2022/10/16時点
SQLAlchemyのように、テーブル定義をrefrectionで取ってきて・・みたいなことを考えなくて良いのは楽
SQLAlchemyほどSQLっぽくはないが、PandasよりはSQLっぽい
SQLAlchemyでがんばらずに、ibisでjoinや集計をして、分析結果をJupyterに整形して出す、のは楽そう
と言っても内部ではSQLAlchemyのステートメントに変換して実行しているらしい