Pandas连接字符串包含和loc



我想知道这在熊猫上是否可行:

在图片中更容易看到我想要的东西:[1] :https://i.stack.imgur.com/YV5fy.png

您可以尝试以下方法:

# Select only target patterns in df1
df1 = df1[df1.Description.str.contains('|'.join(df2.Description))].reset_index(drop=True)
# Select only target patterns in df2
df2 = df2[df2.Description.map(lambda x: df1.Description.str.contains(x).any())].reset_index(drop=True)
# Concatenate dataframes
df3 = pd.concat([df1, df2.rename(columns={'Description': 'Description (df2)'})], axis=1)

另一种方法,可能对大数据帧不是很有效:

mapper = {k:v for k in df1.Description for v in df2.Description if v in k}
df3 = pd.concat([
df1[df1.Description.isin(mapper.keys())].reset_index(drop=True),
df2[df2.Description.isin(mapper.values())].rename(columns={'Description': 'Description (df2)'}).reset_index(drop=True)
], axis=1)

最新更新