Manipulação de Dados com Pandas e Numpy a partir de um Arquivo CSV

Introdução

Neste artigo, vamos demonstrar como utilizar as bibliotecas pandas e numpy do Python para manipular dados a partir de um arquivo CSV. O arquivo CSV está codificado em ‘latin1’, pula as primeiras 8 linhas, utiliza ‘;’ como separador de campos e ‘,’ como separador decimal.

Carregando o Arquivo CSV

Primeiro, vamos carregar o arquivo CSV utilizando pandas:

import pandas as pd

# Carregar o arquivo CSV com as especificações fornecidas
df = pd.read_csv('exercicio2024.CSV', encoding='latin1', skiprows=8, sep=';', decimal=',')

Visualizando os Dados

Vamos visualizar as primeiras linhas do DataFrame para entender a estrutura dos dados:

# Mostrar as primeiras linhas do DataFrame
print("Primeiras linhas do DataFrame:")
print(df.head())

Visualizando Dados com Gráficos de Linha

Gráfico de Linha – Distribuição da Temperatura ao longo de um Dia

Vamos criar um gráfico de linha para mostrar a distribuição da temperatura ao longo de um dia:

import matplotlib.pyplot as plt
import numpy as np

# Converter a coluna de data para o tipo datetime
df['DATA (YYYY-MM-DD)'] = pd.to_datetime(df['DATA (YYYY-MM-DD)'])

# Adicionar uma coluna de hora do dia
df['HORA_DO_DIA'] = pd.to_datetime(df['HORA (UTC)'], format='%H:%M').dt.hour

# Gráfico de Linha - Distribuição da Temperatura ao longo de um dia
plt.figure(figsize=(15, 5))
for data in df['DATA (YYYY-MM-DD)'].unique():
    plt.plot(df[df['DATA (YYYY-MM-DD)'] == data]['HORA_DO_DIA'], 
             df[df['DATA (YYYY-MM-DD)'] == data]['TEMPERATURA DO AR - BULBO SECO, HORARIA (°C)'], 
             label=f'Data {data.date()}')
plt.xlabel('Hora do Dia')
plt.ylabel('Temperatura (°C)')
plt.title('Distribuição da Temperatura ao longo de um Dia')
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()

!Gráfico de Linha – Distribuição da Temperatura ao longo de um Dia

Gráfico de Linha – Distribuição da Temperatura ao longo do Ano

Vamos criar um gráfico de linha para mostrar a distribuição da temperatura ao longo do ano:

# Adicionar uma coluna de semana do ano
df['SEMANA_DO_ANO'] = df['DATA (YYYY-MM-DD)'].dt.isocalendar().week

# Gráfico de Linha - Distribuição da Temperatura ao longo do Ano
plt.figure(figsize=(15, 5))
for semana in df['SEMANA_DO_ANO'].unique():
    plt.plot(df[df['SEMANA_DO_ANO'] == semana]['DATA (YYYY-MM-DD)'], 
             df[df['SEMANA_DO_ANO'] == semana]['TEMPERATURA DO AR - BULBO SECO, HORARIA (°C)'], 
             label=f'Semana {semana}')
plt.xlabel('Data')
plt.ylabel('Temperatura (°C)')
plt.title('Distribuição da Temperatura ao longo do Ano')
plt.legend(loc='upper right')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

!Gráfico de Linha – Distribuição da Temperatura ao longo do Ano

Calculando Estatísticas

Média e Desvio Padrão da Temperatura

Para calcular a média e o desvio padrão da temperatura, podemos usar:

media_temperatura = df['TEMPERATURA DO AR - BULBO SECO, HORARIA (°C)'].mean()
desvio_padrao_temperatura = df['TEMPERATURA DO AR - BULBO SECO, HORARIA (°C)'].std()
print(f"\nMédia da temperatura: {media_temperatura:.2f}°C")
print(f"Desvio padrão da temperatura: {desvio_padrao_temperatura:.2f}°C")

Média e Desvio Padrão da Umidade Relativa do Ar

Para calcular a média e o desvio padrão da umidade relativa do ar, podemos usar:

media_umidade = df['UMIDADE RELATIVA DO AR, HORARIA (%)'].mean()
desvio_padrao_umidade = df['UMIDADE RELATIVA DO AR, HORARIA (%)'].std()
print(f"\nMédia da umidade relativa do ar: {media_umidade:.2f}%")
print(f"Desvio padrão da umidade relativa do ar: {desvio_padrao_umidade:.2f}%")

Conclusão

Neste artigo, demonstramos como carregar e manipular dados de um arquivo CSV utilizando as bibliotecas pandas e numpy do Python. Mostramos como criar gráficos de linha para visualizar a distribuição da temperatura ao longo de um dia e ao longo do ano. Adicionalmente, calculamos a média e o desvio padrão de variáveis importantes como temperatura e umidade relativa do ar

Edvaldo Guimrães Filho Avatar

Published by

Categories: ,

Leave a comment