【问题标题】:Fuzzy Match two dataframe based on list value column基于列表值列的模糊匹配两个数据框
【发布时间】:2020-06-18 10:03:17
【问题描述】:

我有两个数据框,我试图通过匹配列中的值来合并它们。要匹配的列是 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',...] | |-------------|---------------|--------------|--- ----------------------|

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

【问题讨论】:

    标签: pandas dataframe fuzzywuzzy


    【解决方案1】:

    使用DataFrame.explodeheader2 重新分配给header1 以避免丢失原始列header2,然后使用DataFrame.merge

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

    【讨论】:

    • 谢谢!这就是我需要的。
    • @elitebook190 - 谢谢,很高兴为您提供帮助。不要忘记接受答案,如果它适合你! :)
    • 我还有一个问题,如果我想将字符串的fuzz.ratio 与fuzzywuzzy 一起使用?任何想法
    • @elitebook190 - 那么可以检查this
    • 好的,谢谢! So sorry 另一个问题:header1 中的 list 和 header 2 中的 list 怎么样。检查公共元素是否存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2022-11-13
    相关资源
    最近更新 更多