我使用非常大的数据集(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"但我只能搜索一列。
最好的问候。
答案 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)