gpt4 book ai didi

python pandas 使用带正则表达式的 map

转载 作者:行者123 更新时间:2023-12-04 02:20:37 25 4
gpt4 key购买 nike

我有一个字典:

dealer = {
'ESSELUNGA': 'Spesa',
'DECATHLON 00000120': 'Sport',
'LEROY MERLIN': 'Casa',
'CONAD 8429': 'Spesa',
'IKEA': 'Casa',
'F.LLI MADAFFARI': 'Spesa',
'SUPERMERCATO IL GIGANT': 'Spesa',
'NATURASI SPA': 'Spesa',
'ESSELUNGA SETTIMO MILANE': 'Spesa'
}

我想将它映射到 pandas df:

entries.Categoria = entries.Commerciante.map(dealer)

有没有办法使用正则表达式来匹配“Commerciante”列上的 map ?通过这种方式,我可以将经销商重写为:

dealer = {
'ESSELUNGA': 'Spesa',
'DECATHLON': 'Sport',
'LEROY MERLIN': 'Casa',
'CONAD': 'Spesa',
'IKEA': 'Casa',
'F.LLI MADAFFARI': 'Spesa',
'SUPERMERCATO IL GIGANT': 'Spesa',
'NATURASI SPA': 'Spesa',
'ESSELUNGA SETTIMO MILANE': 'Spesa'
}

并匹配“迪卡侬”和“迪卡侬 00000120”

最佳答案

谢谢大家。我用你的建议来解决我的问题。我定义了一个新函数:

def dealer_replace(dealer_dict, text):

regex = re.compile("(%s)" % "|".join(map(re.escape, dealer_dict.keys())))

if regex.search(text):
ret = regex.search(text)
return dealer_dict[ret.group()]
else:
return None

并将其与 apply 一起使用

entries['Categoria'] = entries['Commerciante'].apply(lambda v: dealer_replace(dealer, str(v)))

关于python pandas 使用带正则表达式的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com