final
This commit is contained in:
@@ -28,6 +28,19 @@ def processar_Classificao_Veranicos():
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
def classificar_aplitude(valor: int) -> int:
|
||||
if 0 <= valor <= 3:
|
||||
return 0
|
||||
elif 4 <= valor <= 10:
|
||||
return 1
|
||||
elif 11 <= valor <= 20:
|
||||
return 2
|
||||
elif 21 <= valor <= 31:
|
||||
return 3
|
||||
else: # 32 ou mais
|
||||
return 4
|
||||
|
||||
|
||||
def diferenca_dias(data1, data2):
|
||||
formato = "%Y-%m-%d"
|
||||
|
||||
@@ -79,15 +92,18 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
filtro = filtro.copy() # Para evitar avisos do Pandas
|
||||
filtro['dias_chuva'] = 0
|
||||
filtro['dias_decendio'] = 0
|
||||
filtro['amplitude'] =classificar_aplitude(dia)
|
||||
|
||||
|
||||
|
||||
|
||||
diferenca=diferenca_dias(data_inicio, data_fim)
|
||||
|
||||
diferenca=diferenca_dias(data_inicio, data_fim)+1
|
||||
|
||||
|
||||
quantidade_veranicos = len(filtro) # Conta o número de linhas
|
||||
print(index,"- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")
|
||||
print ('estacao: ',selecao_estacao , 'data_inicio' , '--- ', data_fim ,' Qtd Dias: ', diferenca)
|
||||
print ('estacao: ',selecao_estacao , ' Qtd Dias: ', diferenca)
|
||||
if quantidade_veranicos <=0:
|
||||
print(f"Tem algum problema registros ({quantidade_veranicos} linhas).")
|
||||
elif quantidade_veranicos <= 1:
|
||||
@@ -95,7 +111,10 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
filtro.loc[filtro.index[0], 'dias_chuva'] = diferenca_dias(data_inicio, data_fim)+1
|
||||
filtro.loc[filtro.index[0], 'dias_decendio'] =diferenca_dias(filtro.iloc[0]['INICIO'], filtro.iloc[0]['FINAL'])+1
|
||||
|
||||
|
||||
filtro["diferenca"] = abs(filtro["dias_chuva"] - filtro["dias_decendio"])
|
||||
df_sorted = filtro.sort_values(by="diferenca")
|
||||
filtro = df_sorted.iloc[:1]
|
||||
|
||||
|
||||
elif quantidade_veranicos <= 2:
|
||||
print(f"Tem mais de 2 registros ({quantidade_veranicos} linhas).")
|
||||
@@ -103,7 +122,10 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
filtro.loc[filtro.index[1], 'dias_chuva'] = diferenca_dias(filtro.iloc[1]['INICIO'], data_fim)+1
|
||||
filtro.loc[filtro.index[0], 'dias_decendio'] =diferenca_dias(filtro.iloc[0]['INICIO'], filtro.iloc[0]['FINAL'])+1
|
||||
filtro.loc[filtro.index[1], 'dias_decendio'] =diferenca_dias(filtro.iloc[1]['INICIO'], filtro.iloc[1]['FINAL'])+1
|
||||
|
||||
|
||||
filtro["diferenca"] = abs(filtro["dias_chuva"] - filtro["dias_decendio"])
|
||||
df_sorted = filtro.sort_values(by="diferenca")
|
||||
filtro = df_sorted.iloc[:1]
|
||||
|
||||
|
||||
|
||||
@@ -117,6 +139,27 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
filtro.loc[filtro.index[2], 'dias_decendio'] =diferenca_dias(filtro.iloc[2]['INICIO'], filtro.iloc[2]['FINAL'])+1
|
||||
|
||||
|
||||
filtro["diferenca"] = abs(filtro["dias_chuva"] - filtro["dias_decendio"])
|
||||
df_sorted = filtro.sort_values(by="diferenca")
|
||||
filtro = df_sorted.iloc[:2]
|
||||
|
||||
#print(df_sorted)
|
||||
|
||||
#linha_menor_diferenca = df_sorted.iloc[0]
|
||||
#linha_menor_diferenca2 = df_sorted.iloc[1]
|
||||
|
||||
# Pegando apenas as duas primeiras linhas do df_sorted
|
||||
|
||||
|
||||
|
||||
|
||||
# Exibindo resultado
|
||||
#print(linha_menor_diferenca)
|
||||
#print(linha_menor_diferenca2)
|
||||
|
||||
|
||||
|
||||
|
||||
elif quantidade_veranicos <= 4:
|
||||
print(f"Tem mais de 4 registros ({quantidade_veranicos} linhas).")
|
||||
filtro.loc[filtro.index[0], 'dias_chuva'] = diferenca_dias(data_inicio, filtro.iloc[0]['FINAL'])
|
||||
@@ -128,6 +171,10 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
filtro.loc[filtro.index[1], 'dias_decendio'] =diferenca_dias(filtro.iloc[1]['INICIO'], filtro.iloc[1]['FINAL'])+1
|
||||
filtro.loc[filtro.index[2], 'dias_decendio'] =diferenca_dias(filtro.iloc[2]['INICIO'], filtro.iloc[2]['FINAL'])+1
|
||||
filtro.loc[filtro.index[3], 'dias_decendio'] =diferenca_dias(filtro.iloc[3]['INICIO'], filtro.iloc[3]['FINAL'])+1
|
||||
|
||||
filtro["diferenca"] = abs(filtro["dias_chuva"] - filtro["dias_decendio"])
|
||||
df_sorted = filtro.sort_values(by="diferenca")
|
||||
filtro = df_sorted.iloc[:3]
|
||||
|
||||
print(filtro)
|
||||
dados = []
|
||||
@@ -136,7 +183,8 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
dados.append({
|
||||
'CODIGO': selecao_estacao['CODIGO'],
|
||||
'DECENDIO': row['DECENDIO'],
|
||||
'AMPLITUDE': row['dias_chuva']
|
||||
'AMPLITUDE': row['amplitude'],
|
||||
'ANO': pd.to_datetime(row['INICIO']).year,
|
||||
})
|
||||
print('************************************************************')
|
||||
|
||||
@@ -154,18 +202,18 @@ def rodar_decendio(decendios,qtd_veranicos, estacoes, file):
|
||||
|
||||
|
||||
def transformar_decendio():
|
||||
df = pd.read_csv("saida.csv", sep=";")
|
||||
# Transformar a tabela para o formato desejado
|
||||
df_pivot = df.pivot(index="CODIGO", columns="DECENDIO", values="AMPLITUDE")
|
||||
|
||||
# Resetar o índice para salvar corretamente
|
||||
df_pivot.reset_index(inplace=True)
|
||||
|
||||
# Salvar o resultado no CSV
|
||||
df_pivot.to_csv("saida_transformado.csv", sep=";", encoding="utf-8", index=False)
|
||||
|
||||
|
||||
origem = '42veranicosclassificacao'
|
||||
files = listar_csvs(origem)
|
||||
|
||||
for file in files:
|
||||
print(f"Encontrada pasta: ./{origem}/{file}")
|
||||
df = pd.read_csv("./42veranicosclassificacao/"+file, sep=";")
|
||||
df_pivot = df.pivot(index="CODIGO", columns="DECENDIO", values="AMPLITUDE")
|
||||
|
||||
|
||||
df_pivot.reset_index(inplace=True)
|
||||
df_pivot.to_csv("./43descendiofinal/final"+file, sep=";", encoding="utf-8", index=False)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user