Pandas 字符串包含并替换

Pandas string contains and replace

我有以下数据框

         A            B
0        France        United States of America
1        Italie        France
2        United Stats  Italy

我正在寻找一个函数,它可以获取(对于 A 列中的每个单词)前 4 个字母,然后在 B 列中搜索这 4 个字母是否存在。现在,如果是这种情况,我想用 B.

中的相似值(相似的前 4 个字母)替换 A 中的值

示例:对于 A 列中的意大利一词,我必须取 Ital 然后在 B 中搜索是否可以找到它。然后我想用它的相似词 Italy.

替换 Italie

我试过 forstr.contains 函数

但还是不能只取前4个字母。

预期输出:

         A                         B
0        France                   United States of America
1        Italy                    France
2        United Stats of America  Italy

为了总结,我正在寻找 A 列中的更正值,使其与 b 列中的值相似

模糊匹配的解决方案--fuzzywuzzy

from fuzzywuzzy import process

def fuzzyreturn(x):
    return [process.extract(x, df.B.values, limit=1)][0][0][0]


df.A.apply(fuzzyreturn)
Out[608]: 
0                      France
1                       Italy
2    United States of America
Name: A, dtype: object
df.A=df.A.apply(fuzzyreturn)