首页 > 解决方案 > python - 如何从重复多次的列表中模糊合并项目

问题描述

我有一个名为“logos”的单列df,由以下列表组成:(注意我在stackoverflow上搜索了类似的问题,但无济于事

logos

['DEN.png',
 'MIN.png',
 'LA.png',
 'NE.png',
 'ARI.png',
 'TEN.png']

我想与以下包含每个项目的 df 合并,减去 .png 文件名

0   ARI
1   ARI
2   ARI
3   DEN
4   DEN
5   DEN

我想以一种每次在 df 中列出每个团队时列表中的项目都相应匹配的方式进行合并

0   ARI ARI.png
1   ARI ARI.png
2   ARI ARI.png
3   DEN DEN.png
4   DEN DEN.png
5   DEN DEN.png

我想知道考虑到ARIandARI.png不完全相同,我应该如何处理这个问题,并且我想合并的 df 中的项目被多次列出。python中是否有像R中的模糊连接之类的东西?提前感谢您的帮助。

标签: pythonpandasdataframemerge

解决方案


AFIK 没有“模糊”合并选项。您可以在徽标中创建一个新列

logos['no_ext'] = logos.column_name.str.split('.').str.get(0) 

然后与 df 合并

df = df.merge(logos, how='left', left_on='column_name', right_on='no_ext')

编辑

注意merge中的how参数。如果省略,它将默认为内部。然后,如果您在 df 中遇到在 logos 中没有相应文件名的行,它将被排除在合并结果之外。


推荐阅读