计算结果是否可信,常常取决于计算之前做了什么。我的学习习惯是先写下数据的含义,再开始画图和计算。

01 / 先说明每一列是什么

一份时间序列至少需要清楚的时间字段和观测值。日期是交易日期还是自然日期?数值是收盘价、指数点位,还是经过复权处理的价格?不同口径不能直接混在一起使用。

在文件旁保留一份简短说明,记下数据来源、下载时间、单位、时区和处理方式。这样隔一段时间再打开文件,仍能知道每一列代表什么。

02 / 用小样本检查,而不是只看行数

下面是专门为学习构造的示例,不对应任何真实证券:

教学数据:日期与观测值
日期观测值检查结果
2026-01-05100.0有效记录
2026-01-06101.5有效记录
2026-01-06101.5重复日期,需核实
2026-01-07空值缺失,需确认原因

重复记录可能来自重复下载,也可能是同一天不同时间的观测。不要在没有理解含义之前直接删除。缺失值也不等于零,把缺失价格填成零会制造没有发生过的巨大变化。

03 / 让清洗步骤可以重做

  1. 保留原始文件,不在原件上直接修改。
  2. 统一日期格式,按照时间升序排列。
  3. 核对重复项、缺失项和明显异常的数值。
  4. 记录每一次处理的理由,并保存清洗后的新文件。
  5. 对比处理前后的行数、起止日期与数值范围。
一个容易忽略的区别

自然日没有记录,并不一定意味着数据丢失。分析交易数据时,应先区分休市日、停牌和真正的缺失记录。

这次学习留下的问题

遇到缺失值时,保留缺失、删除记录和向前填充各有什么影响?我的做法是先说明分析目的,再比较处理方法对结果的影响,而不是给所有数据使用同一种填充规则。