简体   繁体   English

合并基于 substring 的 Pandas 数据帧或在另一个 Dataframe 中部分匹配

[英]Merge Pandas Dataframes based on substring or partial match in another Dataframe

I have two sample data frames:我有两个示例数据框:

df1 = pd.DataFrame({'Model': ['0RW52HC5KDD13R', '0RW52HC5KDD13U','JJS42HC5JSSAYR']})

df2 = pd.DataFrame({'Group_Var': ['0RW52HC5K', '0RW52HC5K','JJS42HC5J']})

Using this will result result in an empty dataframe.使用这将导致一个空的 dataframe。

df3 = df1.merge(df2, left_on='Model', right_on='Group_Var')

How could I go about using a merge to use a substring / partial match from df2['Group_Var'] in df1['Model'] ?我怎么能 go 关于使用合并使用df1['Model']中的df2['Group_Var']的 substring / 部分匹配? Perhaps using the str.contains() method as part of the merge?也许使用str.contains()方法作为合并的一部分?

Just for context my expected output would be something like this:就上下文而言,我预期的 output 将是这样的:

Group_Var        Model
0RW52HC5K        0RW52HC5KDD13R
0RW52HC5K        0RW52HC5KDD13U
JJS42HC5J        JJS42HC5JSSAYR

Use pd.concat with axis=1 :使用pd.concataxis=1

df3 = pd.concat([df1, df2], axis=1)

Output: Output:

>>> df3
            Model  Group_Var
0  0RW52HC5KDD13R  0RW52HC5K
1  0RW52HC5KDD13U  0RW52HC5K
2  JJS42HC5JSSAYR  JJS42HC5J

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM