楼主: 周正
537 3

[问答] Python实现两个DataFrame匹配 [推广有奖]

  • 0关注
  • 0粉丝

大专生

81%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
212 点
帖子
11
精华
0
在线时间
102 小时
注册时间
2010-2-8
最后登录
2023-10-22

楼主
周正 学生认证  发表于 2023-10-21 18:07:26 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想使用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',]})






二维码

扫码加我 拉你入群

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

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

关键词:Dataframe python Frame Data Fram

沙发
oliverzhangxl 发表于 2023-10-30 10:46:31 |只看作者 |坛友微信交流群
不要想着直接匹配合并操作,要想着先处理下数据,把列标签统一后再做匹配,这个查找替换的操作不需要我教你吧。

使用道具

藤椅
cc791010lj 发表于 2023-10-31 12:28:37 |只看作者 |坛友微信交流群
data = pd.merge(df1, df2, left_on='name1', right_on='name2', how='right')   这个可以把相同字段的值进行合并,从右往左、从左往右都可以,看需求。可以试试,我也是初学,楼主可以研究下merge。

使用道具

板凳
jmpamao 发表于 2023-11-21 14:05:06 |只看作者 |坛友微信交流群
merge 非常好用~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 17:25