У меня есть уникальный вопрос, и я прежде всего надеюсь найти способы немного ускорить этот код. У меня есть набор строк, хранящихся в dataframe, каждый из которых имеет несколько названий в нем, и я знаю, что количество имен до этого шага, например, так:Поиск многих строк для многих словарных клавиш, быстро
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
ключами. Есть ли более быстрый способ выполнить эту операцию, например, используя количество найденных людей?