我有下面的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
中存在一个单词的可能性非常高。例如:
0 URBANA. OBRA NUEVA TERMINADA. Urbana
1 San Pedro número xxxxx
在这里,我寻找San Pedro
,但是San Pedro
和URBANA
都在_direcciones
中,所以两行都是True
。我不知道如何处理这个问题。你知道吗
尝试这种方法,似乎适用于我使用的小数据示例:
输出:
^{} &;^{}
您可以使用
Series.str.contains
并将_direcciones
中的列作为一个字符串与|
作为分隔符连接起来。你知道吗同样需要注意的是,我们必须用
str.upper
将dataframe的字符串pred
转换为大写只获取
T
&;F
输出
'|'.join
对所有由} 和参数
|
与^{case=False
连接的字符串使用单词边界:如有必要,添加^{} :
相关问题 更多 >
编程相关推荐