使用Pandas对比两个Dataframe 校验Google关键词排名差值并输出
关键词排名变动对比实现方案
核心逻辑
- 以关键词为公共索引,关联前一日与当日的排名数据
- 排名变动值计算公式:
前一日Rank - 当日Rank,结果为正代表排名上升,负代表排名下降,0代表无变动 - 遍历有变动的关键词,按指定格式输出结果
可直接添加的代码段
将以下代码补充到你现有代码的末尾即可实现需求:
# 关联两日排名数据,inner join仅保留两天都存在的关键词 merged = df3[["Rank"]].join(df4[["Rank"]], lsuffix="_prev", rsuffix="_curr", how="inner") # 计算排名变动幅度 merged["delta"] = merged["Rank_prev"] - merged["Rank_curr"] # 过滤排名无变动的条目,不需要可删除此行 merged = merged[merged["delta"] != 0] # 按要求格式输出 for keyword, row in merged.iterrows(): delta = int(row["delta"]) delta_str = f"+{delta}" if delta > 0 else str(delta) print(f"Today {keyword}: {delta_str} position")
补充说明
- 若需要处理仅单日出现的关键词(如新上榜/掉出排名),可将join的
how参数改为outer,自行补充对应输出逻辑即可 - 你当前使用的日期格式化规则为
%Y-%d-%m(年-日-月),请确保CSV文件中Date字段的存储格式与该规则匹配,否则会出现df3/df4为空的问题
内容的提问来源于stack exchange,提问作者Douglas Soares
相关产品推荐
相关产品推荐

