包含 Pandas 中的函数

Contains function in Pandas

我正在对两个数据框的公司名称进行匹配(一种模糊匹配)。为此,首先我在所有公司名称之间执行完全合并,其中起始字母匹配。这意味着所有以 'A' 开头的公司都将与其他数据框中以 'A' 开头的所有公司相匹配。这是按如下方式完成的:

df1['df1_Start'] = df1['company1'].astype(str).str.slice(0,2) 
df2['df2_Start'] = df2['company2'].astype(str).str.slice(0,2)
Merge = pd.merge(df1,df2, left_on='df1_Start',right_on='df2_Start')

现在我想要 FullMerge 中的所有行,其中 df1 中的公司包含 df2 中的公司。这是因为 df1 中的公司名称被拉长了。

Merge1=Merge[Merge['company1'].str.contains(Merge['company2'].str)]

这对我不起作用。我如何执行此任务?另外,请建议我可以使用哪些其他方式来匹配公司名称。因为公司在两个数据框中可能相同,但编写方式并不完全相同。

我认为您需要 |join 来生成由 | 分隔的所有值(或 regex) for str.contains:

Merge1=Merge[FullMerge['company1'].str.contains("|".join(Merge['company2'].tolist())]