iniciando

This commit is contained in:
2024-07-25 17:24:24 -03:00
commit dfea13c6c2
467 changed files with 13840436 additions and 0 deletions

81
processar.py Normal file
View File

@@ -0,0 +1,81 @@
import os
import pandas as pd
import numpy as np
from time import sleep
def listar_pastas(diretorio):
pastas = [nome for nome in os.listdir(diretorio) if os.path.isdir(os.path.join(diretorio, nome))]
return pastas
def completar_com_valores(dados, estacao, output_csv):
dados_df = pd.read_csv(dados, sep=';', decimal=',', parse_dates=['DATA'], dayfirst=True)
dados_df.head(2)
estacao_df = pd.read_csv(estacao, encoding='utf-8', sep=';', decimal=',')
estacao_df.head(2)
# Copiar dados_df para uma variável para atualização
AtualizaDados = dados_df.copy()
# Caminho do arquivo de log no diretório atual
log_file_path = os.path.join(os.getcwd(), output_csv+'.txt')
# Abrir o arquivo de log para escrita
with open(log_file_path, 'w') as log_file:
# Iterar sobre AtualizaDados para atualizar os valores
for index, row in AtualizaDados.iterrows():
valor = row['VALOR']
data = row['DATA']
if valor <= -1:
log_file.write(f"Código: {row['CODIGO']}, Data: {row['DATA']}, Valor: {valor}\n")
codigo_filtrado = row['CODIGO']
linhas_filtradas = estacao_df.loc[estacao_df['CODIGO'] == codigo_filtrado]
# Iterar sobre os códigos próximos (1codigo, 2codigo, 3codigo)
for i in range(1, 6): # Considerando as três primeiras colunas de códigos
codigo_proximo = linhas_filtradas[f'{i}c'].iloc[0]
filtro = (dados_df['CODIGO'] == codigo_proximo) & (dados_df['DATA'] == data)
valor_proximo = dados_df.loc[filtro, 'VALOR'].values
log_file.write(f"{i}codigo: {codigo_proximo} Valor: {valor_proximo}\n")
# Verificar se o valor encontrado não é menor ou igual a -1
if len(valor_proximo) > 0 and valor_proximo[0] > -1:
AtualizaDados.loc[index, 'VALOR'] = valor_proximo[0]
log_file.write(f"Valor atual {row['VALOR']} - Valor atualizado para: {valor_proximo[0]}\n")
break # Parar o loop se encontrar um valor válido
log_file.write("---------------------------------------------------\n")
# Exibir mensagem após completar o processo
print("Dados atualizados:")
AtualizaDados.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)
#print(AtualizaDados)
#df.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)
def processar_arquivos():
print("Carregando arquivo...")
diretorio = 'data' # nome da pasta principal
pastas = listar_pastas(diretorio)
for pasta in pastas:
print(f"Encontrada pasta: {pasta}")
estacao = f"./proxima_{pasta}.csv"
dados = f"./dados_{pasta}.csv"
output_csv = f"./final_{pasta}.csv"
print(estacao)
print(dados)
print(output_csv)
completar_com_valores(dados, estacao, output_csv)
sleep(3)