不能直接拼接成一条趋势线。缺少共同字段意味着两批数据无法建立同一行、同一页面或同一时间点的对应关系,强行首尾相接只会得到一个看似连续、实际断裂的序列。可行的替代是分别描述两段趋势,再用一个明确的桥接口径说明中间发生了什么。
“没有共同字段”至少有三种情况,处理方式不同。第一种是标识字段缺失,比如旧数据只记录域名,新数据只记录完整网址,两者无法判断是否同一对象。第二种是时间字段口径不同,旧数据记录采集月份,新数据记录采集到的小时。第三种是数值字段含义不同,旧值来自第三方仿值,新值来自另一套评分或另一套采集脚本。
判断方法很直接:各取两批数据的前几行,列出字段名,圈出能唯一确定一条记录的字段。如果圈不出任何一组,就属于不可拼接;如果圈出域名或页面路径但格式不同,属于可清洗后拼接;如果只圈出时间但对象不同,属于只能做总体分布对比,不能做个体趋势。
当两批数据都能定位到同一批页面,只是写法不同,例如旧数据是裸域名、新数据带协议和路径,可以先把两边统一成同一粒度。动作是写一个映射规则:去掉协议、去掉末尾斜杠、统一大小写,然后按统一后的键做连接。
执行后要检查连接结果,而不是直接画图。关键看三件事:
只有匹配率和粒度都稳定,拼接后的趋势才值得看。否则趋势线的起伏主要来自匹配失败,而不是对象本身的变化。
如果两批数据连对象都对不上,比如旧数据是一批已下线页面的汇总值,新数据是当前站点另一批页面的值,此时任何连线都是人为制造的连续性。更稳妥的做法是把两段分别画成独立的区间,中间留出空白,并在图注里写明两段的对象范围、采集方式和时间口径。
这种做法会让趋势看起来“断了一截”,但这正是事实。把断裂如实呈现,比用一条平滑曲线掩盖口径切换更有决策价值。需要向读者交代的是:断点两侧各自能说明什么,不能说明什么。
假设某项目有 2019 年的一批页面评分记录,字段是“域名 + 月份 + 分值”;2023 年重新采集,字段是“完整网址 + 采集时刻 + 另一套分值”。两边唯一可能对应的是域名,但 2019 年记录的是主域,2023 年记录的是子域。
此时可选动作是:把 2023 年的完整网址截取到主域,按主域聚合出当月均值,再与 2019 年的月度值并列。执行后如果发现 2019 年一个主域对应多个页面、2023 年一个主域只对应一个页面,聚合口径就不一致,拼接出的“趋势”会把页面数量的变化误读成评分变化。下一步应改为只比较两批数据中都能定位到的同一批具体页面,其余页面单独列出。
多个角色对同一事实理解不同时,争论往往集中在“趋势是不是在涨”,而真正的问题是“这条线是怎么接出来的”。可以把分歧拆成一张核对清单:
每一项都要求给出可复查的证据,而不是结论。核对完成后,如果第 2 项不成立,就应放弃拼接趋势,改为分段描述;如果成立但第 3 项匹配率偏低,就应缩小比较范围,只对能稳定对应的子集下结论。例外情况是:当决策只关心站点整体量级而非单个页面走势时,分段总体值可以并列展示,但仍不能连成一条线。
对历史评分类数据还要额外注意一点:第三方仿值与官方口径不是一回事,旧数据即使字段齐全,也可能与后来的采集体系不可比。遇到这种情况,拼接前应先确认两批数据是否来自同一套定义,确认不了就按不可拼接处理。