阶段4数据获取●●●●●

Parquet:为什么它是量化数据的标准格式

我的掌握程度:
q-337精讲

先掌握这个答案

Parquet是一种列式存储格式,支持类型信息、压缩与按列读取。实际读取性能取决于数据布局、压缩方式、文件大小、存储设备和所选列;没有对CSV固定快10倍或100倍的保证。写入前应显式确认股票代码字符串、日期类型与缺失口径。

先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。

从理解到使用

本阶段实战方法 · 一条能复现的数据流水线

把接口返回的数据变成可用于因子研究的面板时,先处理时点、主键与单位。

  1. 建立数据字典:字段、单位、时区、交易日历、数据源、抓取时间、原始价与复权因子。
  2. 用(date, code)查重,区分停牌、未上市、窗口不足和真实缺失;不要用向后填充把未来值带回过去。
  3. 保存原始快照与清洗日志,固定随机种子和环境版本;接口字段变化时先核对官方文档。

使用边界

  • 报告期不等于公告可用日,盘后公告通常不能用于当天收盘前决策。
  • API输出名为“动态市盈率”时不能直接改名TTM;浏览器练习不支持任意原生库或行情抓取接口。
背景 · 从一个困惑说起
CSV是行式纯文本——读close列也要扫全文件;Parquet按列存储——只碰close列的磁盘块。这是量化和存储优化的分水岭。
由此产生的问题
列式存储的原理?Parquet的三大优势(列读/类型/压缩)?与CSV的体量和速度差量级?
核心概念
Parquet是一种列式存储格式,支持类型信息、压缩与按列读取。实际读取性能取决于数据布局、压缩方式、文件大小、存储设备和所选列;没有对CSV固定快10倍或100倍的保证。写入前应显式确认股票代码字符串、日期类型与缺失口径。
为什么需要它
分析面板数据时,按列读取可减少不必要的I/O;保留字段类型有助于避免股票代码前导零丢失。收益应通过自己的可重复基准测量。
实际应用场景
一行迁移:df.to_parquet('panel.parquet'); pd.read_parquet('panel.parquet')——从CSV切换到Parquet只需改两个方法名。
与之前知识的联系
q-336(存储方案)的推荐格式;q-069(Parquet详细实验)在本阶段预演;类型安全与q-339(dtype检查)衔接。
⚠ 常见误解
  • 列式格式并不保证每个任务都更快,应在相同数据与冷/热缓存条件下测量。
  • 格式不会修复错误类型、重复主键和数据口径,写入前仍需质量检查。
  • to_parquet需要兼容引擎;本地常使用pyarrow,浏览器环境的包支持可能不同。

🤖 AI导师

导师会先检查你的前置知识(存储方案、列式存储概念),再用案例、公式和代码帮助理解。此功能需要先启用服务。