【发布时间】:2019-01-13 20:21:10
【问题描述】:
我有 2 个数据框 - 称它们为 df1 和 df2。
第一个看起来像:
df1
Name G ID Type Source Year
Washington WTG1 Normal Lin 2002
Washington 1 Normal Lin 2001
Washington 4 Normal BOX
Eddie GT2 Normal Lin
Mann 1 New BOX 2018
Mann 2 Normal BOX
Mann SI-01 Old Lin 2017
Mann GGh Old Lin
.
.
第二个看起来像:
df2
Name Unit ID Year
Washington WTG-1 2002
Washington 1 2001
Washington 4 2003
Eddie GT02 2010
Mann 1 2018
Mann 2 2001
Mann SI1 2017
Mann JO 2000
.
.
如您所见,df1 有 一些 Year 值,df2 有,但它是否有它是随机的。此外,df2 的 Mann 中的 GGh 等某些值显然根本不匹配。
G ID 和 Unit ID 是我最感兴趣的合并对象。我需要一种方法来在合并年份(这些非常准确)后创建一些条件,其中ID 值可用于合并。
条件类似于 Levenshtein 距离:
if i in df1['G ID'] 不匹配 j in df2['Unit ID'] -> Calculate LD -> 如果 distance is close enough 然后加入
我知道这是非常伪代码,但我不知道如何继续。 有没有办法做到这一点?
【问题讨论】:
标签: python python-3.x pandas dataframe merge