Advertisement
renidelonzek

Filtro de sequências

Apr 25th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3.  
  4. lista = pd.read_csv('sequencias.txt', delimiter=' ', usecols= range(1, 15), dtype={'col':np.float}).values
  5. lista = lista[0:200000]#Aqui pode ser configurada uma amostra de dados num range de linhas, como por exempo de 0 a 200000
  6. #caso queira usar todas as linhas, comente o codigo com um #
  7.  
  8. #lista = [[0, 3, 6, 9, 12], [2, 2, 4, 6, 8], [10, 20, 30], [21, 22, 23, 24, 25, 26, 27]] #lista usada para testes
  9.  
  10. duplicados = []
  11. sequencia = input("Digite a sequencia minima:\n")
  12. sequencia = int(sequencia)
  13. if sequencia > 1:
  14.     for index, item in enumerate(lista):
  15.         if len(item) >= sequencia:
  16.             for i in range(0, len(item) - 1):
  17.                 quantSequencia = 0
  18.                 intervalo = 1
  19.                 #pend = False  #codigo comentado era usado para fazer um intervalo variável para identificar sequencias diferentes como 3, 6, 9 ou 10, 20, 30
  20.                 continuar = True
  21.                 for i2 in range(0, sequencia - 1):
  22.                     if (item[i2] + intervalo == item[i2 + 1]):
  23.                         quantSequencia += 1
  24.                         #if pend:
  25.                             #quantSequencia += 1
  26.                             #pend = False
  27.                         if quantSequencia == sequencia - 1:
  28.                             duplicados.append(lista[index].tolist())
  29.                             continuar = False
  30.                             break
  31.                     #else:
  32.                         #intervalo = item[i2 + 1] - item[i2]
  33.                         #pend = True
  34.                 if continuar == False:
  35.                     break
  36.                
  37. resultado = [x for x in lista if x.tolist() not in duplicados]
  38.  
  39. #excreve o resultado no arquivo resultado.txt que ficara localizado na mesma pasta de execução
  40. with open('resultado.txt', 'w') as f:
  41.     for item in resultado:
  42.         f.write("%s\n" % item)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement