如何解决左合并基于记录链接对匹配的两个数据帧多索引
import pandas as pd
import recordlinkage as rl
lst_left = [...]
lst_right = [...]
df_left = pd.DataFrame(lst_left,columns=pd.Index(["city_id","street_name"]))
df_right = pd.DataFrame(lst_right,"street_name"]))
indexer = rl.Index()
indexer.block("city_id")
pairs = indexer.index(df_left,df_right)
compare = rl.Compare(indexing_type="label")
compare.string("street_name","street_name",method="damerau_levenshtein",threshold=0.7)
features = compare.compute(pairs,df_left,df_right)
matches = features[features[0] == 1.0]
我得到匹配对 MultiIndex
Out[4]:
0
0 0 1.0
1 1 1.0
2 2 1.0
4 3 1.0
6 5 1.0
7 6 1.0
8 7 1.0
10 8 1.0
12 9 1.0
13 10 1.0
14 11 1.0
15 12 1.0
现在我想左连接(sql 左外连接)df_left 和 df_right 数据帧基于那些匹配对保持 df_left 数据帧中不匹配的元素。
我该怎么做?
附言只获取匹配的记录,我使用
df_left.loc[matches.index.get_level_values(0)].reset_index().merge(df_right.loc[matches.index.get_level_values(1)].reset_index(),how="left",left_index=True,right_index=True)
但我不知道如何从左侧 DataFrame 合并和保留不匹配的行。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。