gpt4 book ai didi

Python数据框匹配列表中的字符串

转载 作者:行者123 更新时间:2023-12-01 07:37:43 25 4
gpt4 key购买 nike

我需要在数据帧列中搜索列表中的匹配字符串,并将匹配结果返回到数据帧中的新列中。下面的代码可以工作,但效率非常低,而且我的数据框中有数百万行。

import pandas as pd 
Cars = {'MakeModel': ['HondaCivic','Toyota_Corolla','FordFocus','Audi--A4']}
df = pd.DataFrame(data=Cars)

mlist = ['Honda','Toyota','Ford','Audi']

for i in df.index:
for x in mlist:
if x in df.get_value(i,'MakeModel'):
df.set_value(i,'Make', x)

最佳答案

让我们在此处将 str.extract 与捕获组一起使用。这会从每个单元格中提取“make”(如果存在),或者在该行中插入 NaN。

import re

df['Make'] = df['MakeModel'].str.extract(
r'({})'.format('|'.join(map(re.escape, mlist))), expand=False)
df
MakeModel Make
0 HondaCivic Honda
1 Toyota_Corolla Toyota
2 FordFocus Ford
3 Audi--A4 Audi
如果您确定 mlist 字符串不包含任何正则表达式,则可以将

map(re.escape, mlist) 替换为 mlist需要转义的元字符。

关于Python数据框匹配列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56905048/

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