阶段4Python 基础进阶●●●●●

groupby:先定义分组,再核对输出粒度

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

先掌握这个答案

agg通常将每组压缩为统计值,transform将组内计算结果对齐回原行。时序收益通常先按标的和时间排序,再按标的计算;当日截面统计应包含date键。若只按行业对全部历史求均值,再贴回过去行,会把未来日期的信息混进当日特征。

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

从理解到使用

先确认分母口径

静态PE、TTM PE、动态PE不可混用。“动态市盈率”字段不能直接重命名TTM。利润为负或接近零时PE解释力很弱;PE倍数也不是投资者收回本金的承诺年数。

核对来源:AKShare字段说明 ↗
本阶段实战方法 · 一条能复现的数据流水线

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

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

使用边界

  • 报告期不等于公告可用日,盘后公告通常不能用于当天收盘前决策。
  • API输出名为“动态市盈率”时不能直接改名TTM;浏览器练习不支持任意原生库或行情抓取接口。
背景 · 从一个困惑说起
本题用于把基础概念变成可以手算、运行和核对的研究步骤。
由此产生的问题
agg和transform怎样区分?按日期还是按标的分组?
核心概念
agg通常将每组压缩为统计值,transform将组内计算结果对齐回原行。时序收益通常先按标的和时间排序,再按标的计算;当日截面统计应包含date键。若只按行业对全部历史求均值,再贴回过去行,会把未来日期的信息混进当日特征。
为什么需要它
明确口径与边界后,才能判断代码运行结果是否可信。
实际应用场景
每次分组前先写出输入与输出的唯一键,计算后检查行数、缺失与几行手算值。性能以实际测量为准。
与之前知识的联系
先用小表核对,再接入第一个月的周练习;不要把运行成功当成结果正确。
⚠ 常见误解
  • transform保留行数不等于时点正确。
  • groupby本身不会替你对组内时间排序。
  • 行业均值跨日期混算可能产生前视。

🤖 AI导师

导师会先检查你的前置知识(布尔索引、双索引面板),再用案例、公式和代码帮助理解。此功能需要先启用服务。