熊猫字符串包含和替换

时间:2018-12-27 22:36:17

标签: python string pandas text contains

我有以下数据框

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

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

示例:对于A列中的Italie,我必须输入Ital,然后在B中搜索是否可以找到它。然后,我想用与其类似的词Italie代替Italy

我尝试使用for函数

但是仍然不能只接受前4个字母。

预期输出:

str.contains

为了概括起见,我正在寻找更正A列中的值以使其类似于b列中的值

1 个答案:

答案 0 :(得分:1)

来自模糊匹配的解决方案-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)