全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
796 3
2023-10-21
我想使用python实现数据的匹配,具体疑惑如下:我有2个DataFrame,第一个是df1,里面只有name1一列数据如下;第二个是df2,里面有两列数据,分别是name2和value。我现在想根据两个DataFrame的name进行匹配,但df1的name1中的元素很多只是df2的name2中元素字符的一部分,如name1中的"大全"对应name2中的"张大全"、name1中的"小张"对应name2中的"小张同学"等等,想实现的匹配效果如res这个DataFrame所示。我知道可以做循环实现这个目的,但问题是df1和df2的数据量都很大,逐一遍历太费时间,想请问大家有没有快捷的方法?


import pandas as pd
df1 = pd.DataFrame({"name1":['大全','小张','小李','','慧慧']})
df2 = pd.DataFrame({"name2":['张大全','来吗','小张同学','很多很多','没有小李','数量很大','王二狗','三儿'],"value":['23','12','04','03','07','33','25','61']})

res = pd.DataFrame({"name1":['大全','小张','小李',''],"name2":['张大全','小张同学','没有小李','王二狗',],"value":['23','04','07','25',]})






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2023-10-30 10:46:31
不要想着直接匹配合并操作,要想着先处理下数据,把列标签统一后再做匹配,这个查找替换的操作不需要我教你吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-10-31 12:28:37
data = pd.merge(df1, df2, left_on='name1', right_on='name2', how='right')   这个可以把相同字段的值进行合并,从右往左、从左往右都可以,看需求。可以试试,我也是初学,楼主可以研究下merge。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2023-11-21 14:05:06
merge 非常好用~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群