首页 > 解决方案 > 基于列表值列的模糊匹配两个数据框

问题描述

我有两个数据框,我试图通过匹配列中的值来合并它们。要匹配的列是 Df1 中的 header1 和 Df2 中的 header2(值为列表)。我正在寻找一种适应的方法。

Df1: Df2:
|---------------|----------------| |--------------|-------------|       
| id_1 | 页眉1 | | id_2 | 页眉2 |
|---------------|----------------| |--------------|-------------|
| 112 | 项目1 | | 32 |['item1','item2',...] |
|---------------|----------------| |--------------|-------------|
| 56 | 质量 |
|---------------|----------------|

想要的结果:

df_merged:                                       
|-------------|---------------|--------------|--- ----------------------|       
| id_1 | 页眉1 | id_2 | 页眉2 |
|-------------|---------------|--------------|--- ----------------------|
| 112 | 项目1 | 32 |['item1','item2',...] |
|-------------|---------------|--------------|--- ----------------------|

有谁知道如何合并这两个数据框?我完全不知道如何处理这个。提前非常感谢。

标签: pandasdataframefuzzywuzzy

解决方案


DataFrame.explode与重新分配header2一起使用header1以避免丢失原始列header2,然后使用DataFrame.merge

df = df1.merge(df2.assign(header1 = df2['header2']).explode('header1'), on='header1')

推荐阅读