ibis:极具潜力的Python数据分析新框架
Ibis基础用法介绍
Ibis的安装
为了展示Ibis的强大功能,我们首先要安装它。建议使用conda或mamba创建新的虚拟环境,这样可以保持环境的干净整洁。
# 创建新的虚拟环境mamba create -n ibis-demo python=3.9 -y# 激活虚拟环境mamba activate ibis-demo# 安装ibis和相关模块pip install ibis-framework[duckdb,examples]
python -c "import ibis;print(ibis.__version__)"
Ibis的主要功能
构建具有便携性的分析逻辑
import numpy as npimport pandas as pd# 生成测试用数据并导出为parquet格式(pd.DataFrame({'类别': np.random.choice(list('abcdef'), 10000000),'数值': np.random.uniform(0, 100, 10000000)}).assign(数值=lambda df: df['数值'].round(3)).to_parquet('demo.parquet'))
import ibis# 使用DuckDB后端加载数据con = ibis.connect("duckdb://")t = con.read_parquet("demo.parquet")# 进行简单的聚合操作result = t.group_by("类别").aggregate(count=t.count(),sum_value=t["数值"].sum()).order_by("count")print(result.execute())
充分搭配Python与SQL
sql_query = ibis.to_sql(result)print(sql_query)
# 直接使用SQL语句进行分析sql_result = t.sql("SELECT 类别, COUNT(*) AS count, SUM(数值) AS sum_value FROM t GROUP BY 类别").order_by("count")print(sql_result.execute())
Ibis的便携性与灵活性
# 本地使用DuckDBlocal_con = ibis.connect("duckdb://")local_table = local_con.read_parquet("penguins.parquet")print(local_table.head(3))# 部署到BigQueryremote_con = ibis.connect("bigquery://")remote_table = remote_con.table("penguins")print(remote_table.head(3))
结语
目前,对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
资料包含了《IDEA视频教程》、《最全python面试题库》、《最全项目实战源码及视频》及《毕业设计系统源码》,总量高达650GB。全部免费领取!全面满足各个阶段程序员的学习需求。