[英]Pandas string contains and replace
我有以下數據框
A B
0 France United States of America
1 Italie France
2 United Stats Italy
我正在尋找一個可以接受(對於A
列中A
每個單詞)前4個字母,然后在B
列中搜索這4個字母是否存在的函數。 現在,如果是這樣的話,我想用類似的值(類似前4個字母),以取代A的值B
。
示例:對於A
列中A
Italie一詞,我必須取Ital
然后在B
搜索是否可以找到它。 然后我想,以取代Italie
與其類似的詞Italy
。
我試着做for
與str.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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.