У меня есть словарь, и я хотел бы иметь возможность поиска с частичной переменной и вернуть текст.
df = pd.read_csv('MY_PATH')
d = defaultdict(lambda: 'Error, input not listed')
d.update(df.set_index('msg')['reply'].to_dict())
d[last_msg()]
last_msg()
должна быть моей частичной переменной, а d
- мой словарь.
Индекс в моем словаре - это столбец msg
из df
.
В столбце msg
у меня есть пример, подобный Jeff Bezos
.
В столбце reply
у меня есть соответствующий ответ Jeff Bezos is the CEO of Amazon
Как найти частичное значение в столбце msg
и вернуть соответствующее значение из столбца reply
?
Я хочу найти только Jeff
или просто Bezos
и получить соответствующий ответ Jeff Bezos is the CEO of Amazon
PS. Альтернативы defaultdict
также могут помочь улучшить код.
РЕДАКТИРОВАТЬ: last_msg()
код извлекает текст из элемента селена.
def last_msg():
try:
post = driver.find_elements_by_class_name("_12pGw")
ultimo = len(post) - 1
texto = post[ultimo].find_element_by_css_selector(
"span.selectable-text").text
return texto
except Exception as e:
print("Error, input not valid")
Когда я печатаю (d):
defaultdict(<function <lambda> at 0x0000021F959D37B8>, {'Jeff Bezos': 'Jeff Bezos is the CEO of Amazon', 'Serguey Brin': 'Serguey Brin co-founded Google', nan: nan})
Когда я печатаю (df)
Unnamed: 0 msg reply
0 0 Jeff Bezos Jeff Bezos is the CEO of Amazon
1 1 Serguey Brin Serguey Brin co-founded Google
2 2 NaN NaN
3 3 NaN NaN