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

如何在Python中实现SAS风格的含重复键列内连接?

在Python中复现SAS内连接(Inner Merge)的问题

我正尝试在Python中复现SAS的*内连接(inner merge)*功能,但当连接键列存在重复值时,Python的内连接结果与SAS的不匹配。

以下是示例数据:

zw = pd.DataFrame({"ID":[1,0,0,1,0,0,1],
                "Name":['Shivansh','Shivansh','Shivansh','Amar','Arpit','Ranjeet','Priyanka'],
                "job_profile":['DataS','SWD','DataA','DataA','AndroidD','PythonD','fullstac'],
                "salary":[22,15,10,9,16,18,22],
                "city":['noida','bangalore','hyderabad','noida','pune','gurugram','bangalore'],
                "ant":[10,15,15,10,16,17,18]})


zw1 = pd.DataFrame({"ID-":[1,0,0,1,0,0,1],
                    "Name":['Shivansh','Shivansh','Swati','Amar','Arpit','Ranjeet','Priyanka'],
                    "job_profile_":['DataS','SWD','DataA','DataA','AndroidD','PythonD','fullstac'],
                    "salary_":[2,15,10,9,16,18,22],
                    "city_":['noida','kochi','hyderabad','noida','pune','gurugram','bangalore'],
                    "ant_":[1,15,15,10,16,17,18]})

zw和zw1为输入表,需按Name列做内连接。问题在于两表的Name列存在重复值,Python会生成重复行的所有可能组合,与预期输出不符。我尝试了常规内连接并按Name、ID列去重,但仍未得到预期结果:

df1=pd.merge(zw,zw1,on=['Name'],how='inner')

df1.drop_duplicates(['Name','ID'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:40:26