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

合并DataFrame时生成重复值的实现方法

解决DataFrame按Name匹配合并的问题

先构造示例数据(方便你对应自己的实际数据)

import pandas as pd

# 你的df1结构示例
df1 = pd.DataFrame({
    'Name': ['John', 'John', 'Mary', 'Mary'],
    'Animal': ['Dog', 'Cat', 'Bird', 'Fish']
})

# 你的df2结构示例
df2 = pd.DataFrame({
    'Name': ['John', 'Mary'],
    'Color': ['Blue', 'Pink']
})

核心实现代码

直接用merge()方法,按Name列做匹配,它会自动将每个Name对应的Color映射到该Name的所有Animal条目上:

# 默认内连接,只保留两个表中都存在的Name数据
df3 = pd.merge(df1, df2, on='Name')

执行后得到的df3结果:

Name Animal  Color
0   John    Dog   Blue
1   John    Cat   Blue
2   Mary   Bird   Pink
3   Mary   Fish   Pink

补充说明

  • 如果你需要保留df1中所有的行(哪怕df2里没有对应Name的数据),可以用左连接:
    df3 = pd.merge(df1, df2, on='Name', how='left')
    
  • 你之前尝试的concat()/append()是单纯的行/列拼接,不会根据Name做匹配,只会导致数据错位;join()默认按索引匹配,若未将Name设为索引,无法正确关联,而merge()是专门用于按指定列做关联匹配的方法,更适合这种场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:01:23