Ibis - 便携式 Python dataframe 库 | 一个Python SQL框架搞定20+数据库!数据分析从未如此统一

[复制链接]
发表于 2025-5-25 21:46:18 | 显示全部楼层 |阅读模式


  

一、关于 Ibis

Ibis 是一个便携式 Python dataframe 库:


  • 快速本地数据框(默认通过 DuckDB)
  • 懒惰的数据框表达式
  • 交互式模式,用于迭代数据探索
  • 组合 Python 数据框和 SQL 代码
  • 使用相同的 [近 20 个后端] 数据框 API
  • 通过更改单行代码在本地迭代并在远程部署 [可移植性]



  • github : https://github.com/ibis-project/ibis
  • 官方文档:https://ibis-project.org/

二、入门

您可以使用 pip install 安装 Ibis 以及后端和示例数据:
  1. pip install 'ibis-framework[duckdb,examples]'
复制代码
更多可见 安装指南:https://ibis-project.org/install

然后使用 Ibis:
  1. >>> import ibis
  2. >>> ibis.options.interactive = True
  3. >>> t = ibis.examples.penguins.fetch()
  4. >>> t
复制代码

  1. ┏━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━┓
  2. ┃ species ┃ island    ┃ bill_length_mm ┃ bill_depth_mm ┃ flipper_length_mm ┃ body_mass_g ┃ sex    ┃ year  ┃
  3. ┡━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━┩
  4. │ string  │ string    │ float64        │ float64       │ int64             │ int64       │ string │ int64 │
  5. ├─────────┼───────────┼────────────────┼───────────────┼───────────────────┼─────────────┼────────┼───────┤
  6. │ Adelie  │ Torgersen │           39.1 │          18.7 │               181 │        3750 │ male   │  2007 │
  7. │ Adelie  │ Torgersen │           39.5 │          17.4 │               186 │        3800 │ female │  2007 │
  8. │ Adelie  │ Torgersen │           40.3 │          18.0 │               195 │        3250 │ female │  2007 │
  9. │ Adelie  │ Torgersen │           NULL │          NULL │              NULL │        NULL │ NULL   │  2007 │
  10. │ Adelie  │ Torgersen │           36.7 │          19.3 │               193 │        3450 │ female │  2007 │
  11. │ Adelie  │ Torgersen │           39.3 │          20.6 │               190 │        3650 │ male   │  2007 │
  12. │ Adelie  │ Torgersen │           38.9 │          17.8 │               181 │        3625 │ female │  2007 │
  13. │ Adelie  │ Torgersen │           39.2 │          19.6 │               195 │        4675 │ male   │  2007 │
  14. │ Adelie  │ Torgersen │           34.1 │          18.1 │               193 │        3475 │ NULL   │  2007 │
  15. │ Adelie  │ Torgersen │           42.0 │          20.2 │               190 │        4250 │ NULL   │  2007 │
  16. │ …       │ …         │              … │             … │                 … │           … │ …      │     … │
  17. └─────────┴───────────┴────────────────┴───────────────┴───────────────────┴─────────────┴────────┴───────┘
复制代码

  1. >>> g = t.group_by("species", "island").agg(count=t.count()).order_by("count")
  2. >>> g
  3. ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━┓
  4. ┃ species   ┃ island    ┃ count ┃
  5. ┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━┩
  6. │ string    │ string    │ int64 │
  7. ├───────────┼───────────┼───────┤
  8. │ Adelie    │ Biscoe    │    44 │
  9. │ Adelie    │ Torgersen │    52 │
  10. │ Adelie    │ Dream     │    56 │
  11. │ Chinstrap │ Dream     │    68 │
  12. │ Gentoo    │ Biscoe    │   124 │
  13. └───────────┴───────────┴───────┘
复制代码

继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

快速回复 返回顶部 返回列表