You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas两个存在重复值的DataFrame如何正确执行关联操作

报错原因

pandas的join方法默认要求右表索引值唯一,你的masterblok表中BLOCKID列存在重复值(如A002对应2条不同种植日期的记录),因此直接关联会触发重复索引报错。

解决方案

优先使用merge方法实现关联,它的逻辑和SQL的JOIN完全一致,天然支持关联键重复的场景,符合你需要的单条period记录匹配对应区块所有种植日期的需求:

# 左连接:保留pest_perperiod所有行,匹配对应BLOCKID的所有种植记录
result_df = pest_perperiod.merge(
    masterblok,
    left_on="FIELDCODE",
    right_on="BLOCKID",
    how="left"
)

如果只需要两个表共有的FIELDCODE/BLOCKID的关联结果,把how="left"改成how="inner"即可。

效果说明

以示例数据为例,关联后A002的5条PERIOD记录,每条都会匹配到A002的2条种植日期记录,最终得到10行关联结果,完全满足后续按BLOCKID、PLANTINGDATE维度计算留存的需求。

内容的提问来源于stack exchange,提问作者Fahmi Fachrizal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:36:03