{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "3baa2ead-4ec5-46a4-a098-faffc5f77d3e", "metadata": {}, "outputs": [], "source": [ "#bibliotecas\n", "#!pip install pandas numpy\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import os" ] }, { "cell_type": "code", "execution_count": 2, "id": "a7d16f5b-6486-4f88-bc7a-8586483ba363", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CODIGODATAVALOR
017420171980-01-011.6
117420171980-01-0210.6
\n", "
" ], "text/plain": [ " CODIGO DATA VALOR\n", "0 1742017 1980-01-01 1.6\n", "1 1742017 1980-01-02 10.6" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Carregar o DataFrame e pega a estacao mais proxima\n", "\n", "dados_df = pd.read_csv(\"leitura.csv\", sep=';', decimal=',', parse_dates=['DATA'], dayfirst=True)\n", "dados_df.head(2)" ] }, { "cell_type": "code", "execution_count": 3, "id": "8e7c01f0-b13c-4552-96f6-0906abd07280", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CODIGOLATITUDELONGITUDENOME1proxima2proxima3proxima1codigo2codigo3codigo
01742017-17.845600-42.075600MALACACHETAÁGUA BOASANTA MARIA DO SUAÇUÍSÃO JOÃO EVANGELISTA174201918420081842020
11742019-17.992201-42.393902ÁGUA BOASANTA MARIA DO SUAÇUÍMALACACHETASÃO JOÃO EVANGELISTA184200817420171842020
\n", "
" ], "text/plain": [ " CODIGO LATITUDE LONGITUDE NOME 1proxima \\\n", "0 1742017 -17.845600 -42.075600 MALACACHETA ÁGUA BOA \n", "1 1742019 -17.992201 -42.393902 ÁGUA BOA SANTA MARIA DO SUAÇUÍ \n", "\n", " 2proxima 3proxima 1codigo 2codigo 3codigo \n", "0 SANTA MARIA DO SUAÇUÍ SÃO JOÃO EVANGELISTA 1742019 1842008 1842020 \n", "1 MALACACHETA SÃO JOÃO EVANGELISTA 1842008 1742017 1842020 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "\n", "# Converter mapeamento para DataFrame\n", "estacao_df = pd.read_csv(\"estacao_mais_proxima.csv\", encoding='utf-8', sep=';', decimal=',')\n", "estacao_df.head(2)\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "fb6a0bc3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dados atualizados:\n" ] } ], "source": [ "# Copiar dados_df para uma variável para atualização\n", "AtualizaDados = dados_df.copy()\n", "\n", "# Caminho do arquivo de log no diretório atual\n", "log_file_path = os.path.join(os.getcwd(), 'atualizacao_dados.txt')\n", "\n", "# Abrir o arquivo de log para escrita\n", "with open(log_file_path, 'w') as log_file:\n", " # Iterar sobre AtualizaDados para atualizar os valores\n", " for index, row in AtualizaDados.iterrows():\n", " valor = row['VALOR']\n", " data = row['DATA']\n", " if valor <= -1:\n", " log_file.write(f\"Código: {row['CODIGO']}, Data: {row['DATA']}, Valor: {valor}\\n\")\n", "\n", " codigo_filtrado = row['CODIGO']\n", " linhas_filtradas = estacao_df.loc[estacao_df['CODIGO'] == codigo_filtrado]\n", " \n", " # Iterar sobre os códigos próximos (1codigo, 2codigo, 3codigo)\n", " for i in range(1, 4): # Considerando as três primeiras colunas de códigos\n", " codigo_proximo = linhas_filtradas[f'{i}codigo'].iloc[0]\n", " filtro = (dados_df['CODIGO'] == codigo_proximo) & (dados_df['DATA'] == data)\n", " valor_proximo = dados_df.loc[filtro, 'VALOR'].values\n", " \n", " log_file.write(f\"{i}codigo: {codigo_proximo} Valor: {valor_proximo}\\n\")\n", " \n", " # Verificar se o valor encontrado não é menor ou igual a -1\n", " if len(valor_proximo) > 0 and valor_proximo[0] > -1:\n", " AtualizaDados.loc[index, 'VALOR'] = valor_proximo[0]\n", "\n", " log_file.write(f\"Valor atual {row['VALOR']} - Valor atualizado para: {valor_proximo[0]}\\n\")\n", " break # Parar o loop se encontrar um valor válido\n", " \n", " log_file.write(\"---------------------------------------------------\\n\")\n", "\n", "# Exibir mensagem após completar o processo\n", "print(\"Dados atualizados:\")\n", "AtualizaDados.to_csv(\"dados_atualizados_mais_proximo.csv\", sep=\";\", encoding='utf-8', decimal=',', index=False)\n", "#print(AtualizaDados)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }