groupby:先定义分组,再核对输出粒度
我的掌握程度:
先掌握这个答案
agg通常将每组压缩为统计值,transform将组内计算结果对齐回原行。时序收益通常先按标的和时间排序,再按标的计算;当日截面统计应包含date键。若只按行业对全部历史求均值,再贴回过去行,会把未来日期的信息混进当日特征。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
先确认分母口径
静态PE、TTM PE、动态PE不可混用。“动态市盈率”字段不能直接重命名TTM。利润为负或接近零时PE解释力很弱;PE倍数也不是投资者收回本金的承诺年数。
核对来源:AKShare字段说明 ↗本阶段实战方法 · 一条能复现的数据流水线
把接口返回的数据变成可用于因子研究的面板时,先处理时点、主键与单位。
- 建立数据字典:字段、单位、时区、交易日历、数据源、抓取时间、原始价与复权因子。
- 用(date, code)查重,区分停牌、未上市、窗口不足和真实缺失;不要用向后填充把未来值带回过去。
- 保存原始快照与清洗日志,固定随机种子和环境版本;接口字段变化时先核对官方文档。
使用边界
- 报告期不等于公告可用日,盘后公告通常不能用于当天收盘前决策。
- API输出名为“动态市盈率”时不能直接改名TTM;浏览器练习不支持任意原生库或行情抓取接口。
不懂的术语:特征(Feature)
背景 · 从一个困惑说起
本题用于把基础概念变成可以手算、运行和核对的研究步骤。
由此产生的问题
agg和transform怎样区分?按日期还是按标的分组?
核心概念
agg通常将每组压缩为统计值,transform将组内计算结果对齐回原行。时序收益通常先按标的和时间排序,再按标的计算;当日截面统计应包含date键。若只按行业对全部历史求均值,再贴回过去行,会把未来日期的信息混进当日特征。
为什么需要它
明确口径与边界后,才能判断代码运行结果是否可信。
实际应用场景
每次分组前先写出输入与输出的唯一键,计算后检查行数、缺失与几行手算值。性能以实际测量为准。
与之前知识的联系
先用小表核对,再接入第一个月的周练习;不要把运行成功当成结果正确。
⚠ 常见误解
- transform保留行数不等于时点正确。
- groupby本身不会替你对组内时间排序。
- 行业均值跨日期混算可能产生前视。
🛠 本题实践任务
对cleaned.csv按symbol计数、取首末价格并算累计收益;按date计算记录数。
💡 提示(先自己想5分钟再看)
排序后再使用first/last。
✅ 验收标准
每标的5行,两标的累计均21%;能区分单期平均收益和累计收益。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(布尔索引、双索引面板),再用案例、公式和代码帮助理解。此功能需要先启用服务。