互联网
类型
可以朗读
语音朗读
143千字
字数
2025-09-01
发行日期
展开全部
主编推荐语
深入解析Polars核心技术,助力高性能数据处理与分析。
内容简介
本书系统讲解了高性能数据处理库Polars的核心原理与实践。书中从Polars的诞生背景与发展历程切入,深入解析其基于Rust的高性能架构、惰性求值机制及表达式系统,对比分析它与pandas等工具的差异,并引导pandas用户平滑迁移至Polars。
本书围绕数据处理流程展开,涵盖数据读取与写入、数据类型(文本、时间、嵌套结构)处理、表达式组合与扩展、数据分组聚合、连接拼接及重塑等核心操作,并结合丰富案例演示了从单机优化到分布式计算的应用场景。此外,本书还介绍了GPU加速、性能调优等进阶内容,旨在帮助读者掌握从数据清洗到复杂分析的全链路技能,释放Polars在大数据场景下的高效潜力。
目录
- 版权信息
- O'Reilly Media, Inc.介绍
- 本书赞誉
- 译者序
- 序
- 前言
- 第一篇 基础
- 第1章 Polars简介
- 1.1 Polars技术解析
- 1.1.1 核心特性
- 1.1.2 核心概念
- 1.1.3 技术优势
- 1.2 使用Polars的理由
- 1.2.1 性能
- 1.2.2 易用性
- 1.2.3 流行度
- 1.2.4 可持续性
- 1.3 对比Polars与其他数据处理工具
- 1.4 聚焦Python Polars
- 1.5 本书内容结构
- 1.6 ETL示例
- 1.6.1 数据抽取
- 1.6.2 附加环节:可视化街区与站点分布
- 1.6.3 数据转换
- 1.6.4 附加环节:各行政区每日行程可视化
- 1.6.5 数据加载
- 1.6.6 附加环节:使用惰性求值加速计算
- 1.7 小结
- 第2章 Polars入门
- 2.1 配置环境
- 2.1.1 下载项目
- 2.1.2 安装uv
- 2.1.3 安装项目
- 2.1.4 虚拟环境操作指南
- 2.1.5 验证安装
- 2.2 JupyterLab快速入门
- 2.3 在其他项目中安装Polars
- 2.3.1 所有可选依赖项
- 2.3.2 数据交互依赖项
- 2.3.3 表格处理依赖项
- 2.3.4 数据库依赖项
- 2.3.5 远程文件系统依赖项
- 2.3.6 其他I/O格式依赖项
- 2.3.7 扩展功能依赖项
- 2.3.8 安装可选依赖项
- 2.4 配置Polars
- 2.4.1 使用上下文管理器实现临时配置
- 2.4.2 使用装饰器进行本地配置
- 2.5 从源码编译Polars
- 2.5.1 特殊情况:超大型数据集
- 2.5.2 特殊情况:不支持AVX的处理器
- 2.6 小结
- 第3章 从pandas到Polars
- 3.1 动物数据集
- 3.2 共同之处
- 3.3 外观差异
- 3.3.1 代码层面的差异
- 3.3.2 数据展示差异
- 3.4 需要摒弃的概念
- 3.4.1 索引
- 3.4.2 数据轴
- 3.4.3 索引与切片
- 3.4.4 即时求值
- 3.4.5 宽松性
- 3.5 需要摒弃的语法
- 3.6 与pandas互操作
- 3.7 小结
- 第二篇 数据形态
- 第4章 数据结构和数据类型
- 4.1 Series、DataFrame与LazyFrame
- 4.2 数据类型
- 4.2.1 嵌套数据类型
- 4.2.2 缺失值
- 4.3 数据类型转换
- 4.4 小结
- 第5章 即时API和惰性API
- 5.1 即时API:DataFrame
- 5.2 惰性API:LazyFrame
- 5.3 性能对比
- 5.4 功能差异
- 5.4.1 属性
- 5.4.2 聚合方法
- 5.4.3 计算方法
- 5.4.4 描述方法
- 5.4.5 分组方法
- 5.4.6 导出方法
- 5.4.7 操作与选取方法
- 5.4.8 其他方法
- 5.5 技巧与窍门
- 5.5.1 在LazyFrame与DataFrame间转换
- 5.5.2 连接DataFrame与LazyFrame
- 5.5.3 缓存中间结果
- 5.6 小结
- 第6章 读取和写入数据
- 6.1 格式概览
- 6.2 读取CSV文件
- 6.3 正确解析缺失值
- 6.4 读取非UTF-8编码文件
- 6.5 读取Excel电子表格
- 6.6 处理多个文件
- 6.7 读取Parquet文件
- 6.8 读取JSON与NDJSON文件
- 6.8.1 JSON
- 6.8.2 NDJSON
- 6.9 其他文件格式
- 6.10 数据库查询
- 6.11 写入数据
- 6.11.1 CSV格式
- 6.11.2 Excel格式
- 6.11.3 Parquet格式
- 6.11.4 其他考量
- 6.12 小结
- 第三篇 表达式
- 第7章 表达式入门
- 7.1 方法与命名空间
- 7.2 表达式应用示例
- 7.2.1 用表达式选取列
- 7.2.2 用表达式创建新列
- 7.2.3 用表达式过滤行
- 7.2.4 用表达式进行聚合
- 7.2.5 用表达式对行排序
- 7.3 表达式的定义
- 7.4 创建表达式
- 7.4.1 基于现有列创建表达式
- 7.4.2 通过字面值创建表达式
- 7.4.3 基于数值范围创建表达式
- 7.4.4 通过其他函数创建表达式
- 7.5 重命名表达式
- 7.6 表达式属于惯用法
- 7.7 小结
- 第8章 表达式扩展
- 8.1 操作类型
- 8.1.1 示例A:元素级操作
- 8.1.2 示例B:单值汇总操作
- 8.1.3 示例C:多值汇总操作
- 8.1.4 示例D:数据扩展操作
- 8.2 元素级操作
- 8.2.1 执行数学变换操作
- 8.2.2 三角函数相关操作
- 8.2.3 圆整与分类操作
- 8.2.4 处理缺失值与无限值操作
- 8.2.5 其他操作
- 8.3 非归约型Series级操作
- 8.3.1 累积型操作
- 8.3.2 填充与偏移操作
- 8.3.3 重复值相关操作
- 8.3.4 计算滚动统计相关操作
- 8.3.5 排序相关操作
- 8.3.6 其他操作
- 8.4 汇总为单值的Series级操作
- 8.4.1 量词操作
- 8.4.2 统计操作
- 8.4.3 计数操作
- 8.4.4 其他操作
- 8.5 汇总为单值或多值的Series级操作
- 8.5.1 唯一值相关操作
- 8.5.2 选取操作
- 8.5.3 删除缺失值操作
- 8.5.4 其他操作
- 8.6 扩展Series级操作
- 8.7 小结
- 第9章 表达式组合
- 9.1 内联运算符与方法链式调用
- 9.2 算术运算
- 9.3 比较运算
- 9.4 布尔代数运算
- 9.5 位运算
- 9.6 函数应用
- 9.7 小结
- 第四篇 转换
- 第10章 列的选取与创建
- 10.1 选取列
- 10.1.1 选择器入门
- 10.1.2 基于列名选取
- 10.1.3 基于数据类型选取
- 10.1.4 基于位置选取
- 10.1.5 组合选择器
- 10.2 创建新列
- 10.3 列的相关操作
- 10.3.1 删除列
- 10.3.2 重命名列
- 10.3.3 堆叠
- 10.3.4 添加行索引
- 10.4 小结
- 第11章 行的过滤与排序
- 11.1 行过滤
- 11.1.1 基于表达式进行过滤
- 11.1.2 基于列名进行过滤
- 11.1.3 基于约束条件进行过滤
- 11.2 行排序
- 11.2.1 基于单列进行排序
- 11.2.2 逆向排序
- 11.2.3 基于多列进行排序
- 11.2.4 基于表达式进行排序
- 11.2.5 基于嵌套数据类型进行排序
- 11.3 相关行操作
- 11.3.1 过滤缺失值
- 11.3.2 切片
- 11.3.3 极值筛选
- 11.3.4 采样
- 11.3.5 半连接
- 11.4 小结
- 第12章 处理文本、时间和嵌套数据类型
- 12.1 字符串数据类型
- 12.1.1 字符串方法
- 12.1.2 字符串示例
- 12.2 类别数据类型
- 12.2.1 类别方法
- 12.2.2 类别示例
- 12.3 枚举数据类型
- 12.4 时间数据类型
- 12.4.1 时间方法
- 12.4.2 时间示例
- 12.5 列表数据类型
- 12.5.1 列表方法
- 12.5.2 列表示例
- 12.6 数组数据类型
- 12.6.1 数组方法
- 12.6.2 数组示例
- 12.7 结构体数据类型
- 12.7.1 结构体方法
- 12.7.2 结构体示例
- 12.8 小结
- 第13章 汇总与聚合
- 13.1 “拆分-应用-合并”范式
- 13.2 GroupBy上下文
- 13.2.1 统计概要
- 13.2.2 高级方法
- 13.3 行级聚合
- 13.4 选择上下文中的窗口函数
- 13.5 动态分组
- 13.6 滚动聚合
- 13.7 上采样
- 13.8 小结
- 第14章 连接与拼接
- 14.1 连接
- 14.1.1 连接策略
- 14.1.2 多列连接
- 14.1.3 验证
- 14.2 非精确连接
- 14.2.1 非精确连接策略
- 14.2.2 微调
- 14.2.3 用例:营销活动归因分析
- 14.3 垂直与水平拼接
- 14.3.1 垂直
- 14.3.2 水平
- 14.3.3 对角
- 14.3.4 对齐
- 14.3.5 宽松模式
- 14.3.6 堆叠
- 14.3.7 追加
- 14.3.8 扩展
- 14.4 小结
- 第15章 重塑
- 15.1 宽表与长表
- 15.2 将长表转换为宽表
- 15.3 反透视为长表
- 15.4 转置
- 15.5 展开
- 15.6 DataFrame分区
- 15.7 小结
- 第五篇 进阶
- 第16章 数据可视化
- 16.1 NYC自行车行程记录
- 16.2 使用内置的Altair进行绘图
- 16.2.1 Altair介绍
- 16.2.2 绘图命名空间方法
- 16.2.3 DataFrame可视化
- 16.2.4 数据量过大的处理方案
- 16.2.5 绘制Series图表
- 16.3 类似pandas的hvPlot绘图
- 16.3.1 hvPlot介绍
- 16.3.2 第一个绘图示例
- 16.3.3 hvPlot命名空间中的方法
- 16.3.4 pandas作为备用方案
- 16.3.5 手动数据转换
- 16.3.6 切换绘图后端
- 16.3.7 绘制地图坐标
- 16.3.8 组合绘图
- 16.3.9 添加交互式控件
- 16.4 使用plotnine创建出版级质量的图像
- 16.4.1 plotnine介绍
- 16.4.2 探索性可视化
- 16.4.3 图表美化
- 16.5 使用Great Tables美化DataFrame
- 16.6 小结
- 第17章 扩展Polars
- 17.1 使用Python自定义函数
- 17.1.1 将函数应用于元素
- 17.1.2 将函数应用于Series
- 17.1.3 将函数应用于分组
- 17.1.4 将函数应用于表达式
- 17.1.5 将函数应用于DataFrame或LazyFrame
- 17.2 注册自定义命名空间
- 17.3 基于Rust的Polars插件
- 17.3.1 前提条件
- 17.3.2 插件项目结构分析
- 17.3.3 插件实现详解
- 17.3.4 编译插件
- 17.3.5 性能基准测试
- 17.3.6 注册参数
- 17.3.7 使用Rust库
- 17.3.8 用例:geo
- 17.4 小结
- 第18章 Polars内部原理
- 18.1 Polars架构解析
- 18.2 Apache Arrow
- 18.3 多线程计算与SIMD指令集
- 18.4 内存中的字符串类型
- 18.5 Series中的分块数组
- 18.6 查询优化机制
- 18.6.1 LazyFrame扫描阶段优化
- 18.6.2 其他优化
- 18.7 检查表达式
- 18.7.1 meta命名空间概述
- 18.7.2 meta命名空间示例
- 18.8 Polars性能剖析
- 18.9 Polars测试
- 18.10 常见反模式
- 18.10.1 滥用方括号选择列
- 18.10.2 误用Collect方法
- 18.10.3 在Polars查询中使用Python代码
- 18.11 小结
- 附录 使用GPU加速Polars
- A.1 NVIDIA RAPIDS
- A.2 安装GPU引擎
- A.3 Polars GPU引擎的使用
- A.3.1 引擎配置
- A.3.2 未支持功能
- A.4 Polars GPU引擎基准测试
- A.4.1 测试方案
- A.4.2 查询与数据
- A.4.3 测试方法
- A.4.4 结果分析
- A.5 Polars GPU引擎的未来发展
- A.6 小结
- 作者简介
- 封面简介
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。
