У меня есть следующее DataFrame
pred[['right_context', 'PERC']]
Out[247]:
right_context PERC
0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.000197
1 San Pedro xxxxxxxxxxxx 0.572630
2 zxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.572630
3 de San Pedro Este parcela 0.572630
4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.035577
И у меня есть еще одна панда DataFrame
с именем _direcciones
с реальными адресами:
388427 SAN PEDRO 1
388428 bbbbbbbbbbbbbbbbbbbbbb 1
388429 yyyyyyyyyyyyyyyyyyy 1
[388430 rows x 2 columns]
Мне нужно как-то найти, если какой-то адрес в _direcciones
содержится в первом DataFrame
. Я сделал следующее:
[True for y in pred.right_context
for x in _direcciones.entity_content
if re.match(r'^%s\b' %x, y, flags=re.I)]
Но это очень медленно, и, что более важно, я хотел бы добавить к первому DataFrame
столбец со значениями True|False
, если адрес был найден, но в настоящее время я не могу, потому что приведенный выше код может вернуть любое количество строк, не точно 5
, как мне нужно для первого DataFrame
.
Примерно так:
pred[['right_context', 'PERC']]
Out[247]:
right_context PERC found?
0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.000197 F
1 San Pedro xxxxxxxxxxxx 0.572630 T
2 zxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.572630 F
3 de San Pedro Este parcela 0.572630 T
4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0.035577 F
Обновление
Спасибо за ответы, но я сталкиваюсь с той же проблемой, _direcciones
настолько велика, что вероятность того, что в pred.right_context
существует слово в _direcciones
, очень высока. Например:
1033 * пред *
0 URBANA. OBRA NUEVA TERMINADA. Urbana
1 San Pedro número xxxxx
Здесь я ищу San Pedro
, но оба San Pedro
и URBANA
находятся в _direcciones
, поэтому обе строки будут True
. Я не знаю, как подойти к проблеме.