一、关于 Ibis
Ibis 是一个便携式 Python dataframe 库:
- 快速本地数据框(默认通过 DuckDB)
- 懒惰的数据框表达式
- 交互式模式,用于迭代数据探索
- 组合 Python 数据框和 SQL 代码
- 使用相同的 [近 20 个后端] 数据框 API
- 通过更改单行代码在本地迭代并在远程部署 [可移植性]
- github : https://github.com/ibis-project/ibis
- 官方文档:https://ibis-project.org/
二、入门
您可以使用 pip install 安装 Ibis 以及后端和示例数据:
- pip install 'ibis-framework[duckdb,examples]'
复制代码 更多可见 安装指南:https://ibis-project.org/install
然后使用 Ibis:
- >>> import ibis
- >>> ibis.options.interactive = True
- >>> t = ibis.examples.penguins.fetch()
- >>> t
复制代码
- ┏━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━┓
- ┃ species ┃ island ┃ bill_length_mm ┃ bill_depth_mm ┃ flipper_length_mm ┃ body_mass_g ┃ sex ┃ year ┃
- ┡━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━┩
- │ string │ string │ float64 │ float64 │ int64 │ int64 │ string │ int64 │
- ├─────────┼───────────┼────────────────┼───────────────┼───────────────────┼─────────────┼────────┼───────┤
- │ Adelie │ Torgersen │ 39.1 │ 18.7 │ 181 │ 3750 │ male │ 2007 │
- │ Adelie │ Torgersen │ 39.5 │ 17.4 │ 186 │ 3800 │ female │ 2007 │
- │ Adelie │ Torgersen │ 40.3 │ 18.0 │ 195 │ 3250 │ female │ 2007 │
- │ Adelie │ Torgersen │ NULL │ NULL │ NULL │ NULL │ NULL │ 2007 │
- │ Adelie │ Torgersen │ 36.7 │ 19.3 │ 193 │ 3450 │ female │ 2007 │
- │ Adelie │ Torgersen │ 39.3 │ 20.6 │ 190 │ 3650 │ male │ 2007 │
- │ Adelie │ Torgersen │ 38.9 │ 17.8 │ 181 │ 3625 │ female │ 2007 │
- │ Adelie │ Torgersen │ 39.2 │ 19.6 │ 195 │ 4675 │ male │ 2007 │
- │ Adelie │ Torgersen │ 34.1 │ 18.1 │ 193 │ 3475 │ NULL │ 2007 │
- │ Adelie │ Torgersen │ 42.0 │ 20.2 │ 190 │ 4250 │ NULL │ 2007 │
- │ … │ … │ … │ … │ … │ … │ … │ … │
- └─────────┴───────────┴────────────────┴───────────────┴───────────────────┴─────────────┴────────┴───────┘
复制代码
- >>> g = t.group_by("species", "island").agg(count=t.count()).order_by("count")
- >>> g
- ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━┓
- ┃ species ┃ island ┃ count ┃
- ┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━┩
- │ string │ string │ int64 │
- ├───────────┼───────────┼───────┤
- │ Adelie │ Biscoe │ 44 │
- │ Adelie │ Torgersen │ 52 │
- │ Adelie │ Dream │ 56 │
- │ Chinstrap │ Dream │ 68 │
- │ Gentoo │ Biscoe │ 124 │
- └───────────┴───────────┴───────┘
复制代码
|