【发布时间】:2017-02-05 20:16:36
【问题描述】:
我有一个独特的问题,我主要希望找出一些方法来加快这段代码的速度。我有一组存储在数据框中的字符串,每个字符串中都有多个名称,并且我知道在此步骤之前的名称数量,如下所示:
print df
description num_people people
'Harry ran with sally' 2 []
'Joe was swinging with sally' 2 []
'Lola Dances alone' 1 []
我正在使用带有我希望在描述中找到的键的字典,如下所示:
my_dict={'Harry':'1283','Joe':'1828','Sally':'1298', 'Cupid':'1982'}
然后使用 iterrows 在每个字符串中搜索匹配项,如下所示:
for index, row in df.iterrows():
row.people=[key for key in my_dict if re.findall(key,row.desciption)]
当运行时它以
结束print df
description num_people people
'Harry ran with sally' 2 ['Harry','Sally']
'Joe was swinging with sally' 2 ['Joe','Sally']
'Lola Dances alone' 1 ['Lola']
我看到的问题是,这段代码完成工作仍然相当慢,而且我有大量的描述和超过1000 键。有没有更快的方法来执行这个操作,比如使用找到的人数?
【问题讨论】:
标签: string python-2.7 pandas dictionary text-extraction