python - 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
我想知道考虑到ARI
andARI.png
不完全相同,我应该如何处理这个问题,并且我想合并的 df 中的项目被多次列出。python中是否有像R中的模糊连接之类的东西?提前感谢您的帮助。
解决方案
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 中没有相应文件名的行,它将被排除在合并结果之外。