Python 字符串包含并替换

Python 字符串包含并替换,python,string,pandas,text,contains,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中类似的值(类似的前4个字母)替换A中的值 例如:对于A列中的斜体字,我必须取Ital,然

我有以下数据帧

         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
中搜索是否可以找到它。然后我想用类似的单词
意大利语
替换
意大利语

我已经尝试使用
str.contains
函数为
执行

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

预期产出:

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

为了总结,我希望将A列中的值更正为与b列中的值类似的值,即模糊匹配的解决方案--
fuzzyfuzzy

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)

首先需要模糊匹配,然后使用mapWow,你的fuzzyreturn函数工作得非常好,我不得不说我不完全理解它是如何工作的,我很快搜索了fuzzyfuzzy.process.extract,但我不理解[0][0][0]@Math的意义只需在没有0的情况下拉出结果你就会明白为什么我需要那么多0和[]