使用Pandas进行部分字符串搜索的最佳解决方案

时间:2015-07-10 23:46:07

标签: string search pandas row partial

我使用非常大的数据集(1.5gb +)并对其进行部分字符串搜索。

我能够为我的作品编写一个脚本,但这需要很长时间:

fhand = open('C:/Users/promotor/Documents/tce-sagres/TCE-PB-SAGRES-Empenhos_Esfera_Municipal.txt','r')
pergunta = raw_input('Pesquisa: ')
fresult = open('resultado.csv','w')
for line in fhand :
    #linha = linha + 0.001 
    #update_progress(int(linha)*1000)
    if pergunta in line : 
        print line
        fresult.write(line)  
print "terminado."""

我想知道在Pandas上是否会有更快的方法。我尝试过str.contains,但我只能搜索一列。我想知道是否会有更快的方式。我试过" str.contains"但我只能搜索一列。

最好的问候。

1 个答案:

答案 0 :(得分:0)

你正在迭代for循环,这可能需要花费很多时间。我建议将整个文件作为字符串读取,然后使用正则表达式匹配您的模式。

请尝试以下代码

import re
with open(your_file_name,'r') as f:
    lines=f.read()
name = input('pattern :')
pattern_to_match = r'(?<=\n).*%s.*(?=\n)'%name
matched_pattern = re.findall(pattern_to_match, lines, re.IGNORECASE)
print (matched_pattern)