Python 包含熊猫的功能

Python 包含熊猫的功能,python,pandas,fuzzywuzzy,Python,Pandas,Fuzzywuzzy,我正在两个数据帧的公司名称之间执行匹配(一种模糊匹配)。为此,首先我要在所有公司名称之间执行完全合并,其中起始字母匹配。这意味着所有以“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

我正在两个数据帧的公司名称之间执行匹配(一种模糊匹配)。为此,首先我要在所有公司名称之间执行完全合并,其中起始字母匹配。这意味着所有以“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中的company包含df2中的company。这是因为df1中的公司名称较长

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

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

我认为您需要使用
join
生成所有由
(或in)分隔的值,用于:


谢谢我如何修改这一点,以便公司一开始应该只包含公司2,而不是中间的某个地方?因为上面给了我很多误报。我想你需要
^
-regex-start-of-string-
Merge1=Merge[FullMerge['company1'].str.contains(“|”).join(Merge['^'+'company2'].tolist())]
Merge1=Merge[FullMerge['company1'].str.contains("|".join(Merge['company2'].tolist())]