当前位置:首页 > 行业动态 > 正文

pandas 多条件模糊匹配两个表

在Pandas中,我们可以使用merge()函数进行多条件模糊匹配,假设我们有两个表df1和df2,我们想要根据某些列的值进行模糊匹配。

步骤如下:

1、我们需要导入pandas库。

import pandas as pd

2、我们创建两个数据框df1和df2。

df1 = pd.DataFrame({
    'A': ['foo', 'bar', 'baz', 'qux'],
    'B': ['one', 'one', 'two', 'three'],
    'C': ['small', 'large', 'large', 'small'],
    'D': [1, 2, 2, 3],
    'E': [2, 4, 5, 5]
})
df2 = pd.DataFrame({
    'A': ['foo', 'bar', 'baz', 'qux'],
    'B': ['one', 'one', 'two', 'four'],
    'C': ['small', 'large', 'large', 'small'],
    'F': [10, 20, 30, 40],
    'G': [50, 60, 70, 80]
})

3、接下来,我们可以使用merge()函数进行多条件模糊匹配,在这个例子中,我们将根据列’A’、’B’和’C’的值进行匹配。

result = pd.merge(df1, df2, on=['A', 'B', 'C'])

这将返回一个新的数据框,其中包含df1和df2中满足条件的行。

注意:merge()函数默认执行的是内连接(inner join),这意味着只有当两个表中的行在指定的列上都有匹配时,才会出现在结果中,如果你想执行其他类型的连接(如左连接、右连接或全连接),你可以传递相应的参数给merge()函数。pd.merge(df1, df2, on=['A', 'B', 'C'], how='outer')将执行全连接。

0