微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

左合并基于记录链接对匹配的两个数据帧多索引

如何解决左合并基于记录链接对匹配的两个数据帧多索引

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 举报,一经查实,本站将立刻删除。