salvando
This commit is contained in:
63
carregar.py
63
carregar.py
@@ -76,7 +76,7 @@ def carregar_arquivoxls_mais_proxima():
|
||||
processar_arquivos_xls(diretorio, output_csv)
|
||||
print(output_csv)
|
||||
sleep(3)
|
||||
processar_arquivos_xls2(output_csv)
|
||||
processar_arquivos_xls10(output_csv)
|
||||
|
||||
# Função para calcular a distância euclidiana
|
||||
def calcular_distancia(lat1, lon1, lat2, lon2):
|
||||
@@ -104,33 +104,22 @@ def processar_arquivos_xls(arquivo, output_csv):
|
||||
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal='.', index=False)
|
||||
|
||||
|
||||
def processar_arquivos_xls2(output_csv):
|
||||
def processar_arquivos_xls10(output_csv):
|
||||
df = pd.read_csv(output_csv, encoding='utf-8', sep=';', decimal='.')
|
||||
df['1p'] = ''
|
||||
df['2p'] = ''
|
||||
df['3p'] = ''
|
||||
df['4p'] = ''
|
||||
df['5p'] = ''
|
||||
df['6p'] = ''
|
||||
df['7p'] = ''
|
||||
# df['8p'] = ''
|
||||
#df['9p'] = ''
|
||||
#df['10p'] = ''
|
||||
|
||||
df['1c'] = ''
|
||||
df['2c'] = ''
|
||||
df['3c'] = ''
|
||||
df['4c'] = ''
|
||||
df['5c'] = ''
|
||||
df['6c'] = ''
|
||||
df['7c'] = ''
|
||||
# df['8c'] = ''
|
||||
#df['9c'] = ''
|
||||
#df['10c'] = ''
|
||||
|
||||
# Criar dinamicamente as colunas de nomes e códigos
|
||||
# Verificar quantas estações únicas existem
|
||||
codigos_unicos = df['CODIGO'].dropna().unique()
|
||||
qtd_estacoes = len(codigos_unicos)
|
||||
|
||||
# Se tiver mais de 10 estações únicas, limitar a 10
|
||||
QTD = min(qtd_estacoes, 10)
|
||||
|
||||
print(f"Estações únicas encontradas: {qtd_estacoes}")
|
||||
print(f"QTD definido para análise de vizinhança: {QTD}")
|
||||
|
||||
for i in range(1, QTD ):
|
||||
df[f'{i}p'] = ''
|
||||
df[f'{i}c'] = ''
|
||||
|
||||
df['LATITUDE'] = pd.to_numeric(df['LATITUDE'], errors='coerce')
|
||||
df['LONGITUDE'] = pd.to_numeric(df['LONGITUDE'], errors='coerce')
|
||||
@@ -140,29 +129,11 @@ def processar_arquivos_xls2(output_csv):
|
||||
lat1, lon1 = row['LATITUDE'], row['LONGITUDE']
|
||||
distancias = df.apply(lambda x: calcular_distancia(lat1, lon1, x['LATITUDE'], x['LONGITUDE']), axis=1)
|
||||
distancias[i] = np.inf # Excluir a própria estação
|
||||
proximas = distancias.nsmallest(7).index # Pegar os índices das três menores distâncias************
|
||||
proximas = distancias.nsmallest(QTD).index # Pegar os índices das três menores distâncias************
|
||||
|
||||
df.at[i, '1p'] = df.at[proximas[0], 'NOME']
|
||||
df.at[i, '2p'] = df.at[proximas[1], 'NOME']
|
||||
df.at[i, '3p'] = df.at[proximas[2], 'NOME']
|
||||
df.at[i, '4p'] = df.at[proximas[3], 'NOME']
|
||||
df.at[i, '5p'] = df.at[proximas[4], 'NOME']
|
||||
df.at[i, '6p'] = df.at[proximas[5], 'NOME']
|
||||
df.at[i, '7p'] = df.at[proximas[6], 'NOME']
|
||||
# df.at[i, '8p'] = df.at[proximas[7], 'NOME']
|
||||
#df.at[i, '9p'] = df.at[proximas[8], 'NOME']
|
||||
#df.at[i, '10p'] = df.at[proximas[9], 'NOME']
|
||||
|
||||
df.at[i, '1c'] = df.at[proximas[0], 'CODIGO']
|
||||
df.at[i, '2c'] = df.at[proximas[1], 'CODIGO']
|
||||
df.at[i, '3c'] = df.at[proximas[2], 'CODIGO']
|
||||
df.at[i, '4c'] = df.at[proximas[3], 'CODIGO']
|
||||
df.at[i, '5c'] = df.at[proximas[4], 'CODIGO']
|
||||
df.at[i, '6c'] = df.at[proximas[5], 'CODIGO']
|
||||
df.at[i, '7c'] = df.at[proximas[6], 'CODIGO']
|
||||
# df.at[i, '8c'] = df.at[proximas[7], 'CODIGO']
|
||||
# df.at[i, '9c'] = df.at[proximas[8], 'CODIGO']
|
||||
# df.at[i, '10c'] = df.at[proximas[9], 'CODIGO']
|
||||
for j in range(QTD):
|
||||
df.at[i, f'{j+1}p'] = str(df.at[proximas[j], 'NOME'])
|
||||
df.at[i, f'{j+1}c'] = str(int(df.at[proximas[j], 'CODIGO']))
|
||||
|
||||
df.to_csv(output_csv, sep=";", encoding='utf-8', decimal=',', index=False)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user