Guia Completo para Editar e Atualizar Arquivos CSV com Python: Do Iniciante ao Avançado

O Python é uma ferramenta poderosa para manipulação de dados, especialmente quando se trata de edição e atualização de arquivos CSV. Neste artigo, abordaremos amplamente como manipular arquivos CSV de forma eficiente usando Python, cobrindo desde métodos básicos de leitura e escrita até filtragem avançada de dados, agregações e tratamento de erros. Tudo será explicado em detalhes com exemplos de código práticos.

Índice

O que é um arquivo CSV

Um arquivo CSV (Comma-Separated Values) é um formato de arquivo de texto que armazena dados separados por vírgulas. Geralmente, ele é usado para troca de dados entre bancos de dados ou planilhas. Cada linha representa um registro, e cada coluna, um campo. Devido à sua simplicidade e alta compatibilidade, os arquivos CSV são amplamente utilizados.

Como ler arquivos CSV com Python

Com o Python, é possível ler arquivos CSV de forma simples usando o módulo padrão csv. Abaixo, mostramos como fazer isso.

Leitura de CSV usando a biblioteca padrão

Primeiro, vamos aprender como ler um arquivo CSV usando o módulo csv do Python.

import csv  

# Especificar o caminho do arquivo CSV  
csv_file_path = 'data.csv'  

# Abrir e ler o arquivo CSV  
with open(csv_file_path, mode='r', newline='') as file:  
    reader = csv.reader(file)  
    for row in reader:  
        print(row)

Esse código utiliza csv.reader para ler o arquivo CSV linha por linha, exibindo cada linha como uma lista.

Ler o conteúdo do CSV como um dicionário

Agora, explicaremos como usar csv.DictReader para ler um arquivo CSV como um dicionário. Esse método usa a linha de cabeçalho como chave e trata os dados de cada linha como valores.

import csv  

# Especificar o caminho do arquivo CSV  
csv_file_path = 'data.csv'  

# Abrir e ler o arquivo CSV  
with open(csv_file_path, mode='r', newline='') as file:  
    reader = csv.DictReader(file)  
    for row in reader:  
        print(row)

Esse código lê cada linha como um dicionário, onde as chaves são os cabeçalhos do CSV e os valores correspondem aos dados.

Com esses métodos, você pode facilmente ler arquivos CSV no Python. A seguir, explicaremos como realizar operações mais avançadas usando a biblioteca pandas.

Manipulação de arquivos CSV com pandas

O pandas é uma biblioteca do Python que simplifica a análise de dados e facilita a leitura, edição e gravação de arquivos CSV. Abaixo, introduzimos as operações básicas com pandas.

Instalação do pandas

Se o pandas não estiver instalado, use o seguinte comando para instalá-lo:

pip install pandas

Ler um arquivo CSV

Para ler um arquivo CSV com pandas, utilizamos a função read_csv.

import pandas as pd  

# Especificar o caminho do arquivo CSV  
csv_file_path = 'data.csv'  

# Ler o arquivo CSV como um DataFrame  
df = pd.read_csv(csv_file_path)  

# Exibir o conteúdo do DataFrame  
print(df)

Esse código lê o arquivo CSV como um DataFrame e exibe os dados.

Editar arquivos CSV

Com pandas, é fácil editar os dados de um DataFrame. Aqui estão alguns exemplos básicos:

Adicionar colunas

Para adicionar uma nova coluna, faça o seguinte:

# Adicionar uma nova coluna chamada 'new_column' com valor 0 para todas as linhas  
df['new_column'] = 0

Filtrar linhas específicas

Para filtrar linhas com base em condições, use o seguinte exemplo:

# Filtrar linhas onde o valor da coluna 'column_name' seja maior que 10  
filtered_df = df[df['column_name'] > 10]

Gravar em um arquivo CSV

Para gravar o conteúdo de um DataFrame em um arquivo CSV, utilizamos a função to_csv.

# Gravar o DataFrame em um novo arquivo CSV  
df.to_csv('output.csv', index=False)

Esse código salva o conteúdo do DataFrame em um novo arquivo CSV. O parâmetro index=False garante que os números das linhas não sejam gravados.

Com o pandas, você pode realizar operações de leitura, edição e gravação de arquivos CSV de maneira integrada. A seguir, explicaremos como filtrar dados em arquivos CSV.

Filtrando Dados de Arquivos CSV

Filtrar dados de arquivos CSV permite extrair apenas os dados que correspondem a condições específicas. Usando pandas, é fácil realizar esse tipo de filtragem de dados.

Método Básico de Filtragem

No pandas, é possível filtrar um DataFrame especificando uma condição. Abaixo está um exemplo básico de filtragem.

import pandas as pd

# Especifica o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Lê o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Filtra as linhas onde o valor em 'column_name' satisfaz uma condição específica
filtered_df = df[df['column_name'] > 10]

# Exibe o DataFrame filtrado
print(filtered_df)

Este código extrai as linhas onde o valor de column_name é maior que 10.

Filtragem com Múltiplas Condições

Também é possível combinar várias condições para realizar a filtragem. Abaixo está um exemplo.

# Filtra as linhas onde o valor de 'column1' é maior que 10 e o valor de 'column2' é menor ou igual a 5
filtered_df = df[(df['column1'] > 10) & (df['column2'] <= 5)]

# Exibe o DataFrame filtrado
print(filtered_df)

Este código extrai as linhas onde o valor de column1 é maior que 10 e o valor de column2 é menor ou igual a 5.

Filtragem de Dados de Texto

Também é possível realizar filtragem em dados de texto. Veja o exemplo abaixo.

# Filtra as linhas onde 'column_name' corresponde a uma string específica
filtered_df = df[df['column_name'] == 'specific_string']

# Exibe o DataFrame filtrado
print(filtered_df)

Este código extrai as linhas onde column_name corresponde a specific_string.

Filtragem por Correspondência Parcial

É possível realizar filtragem usando correspondência parcial. Por exemplo, para extrair linhas que contêm uma string específica, faça o seguinte:

# Filtra as linhas onde 'column_name' contém uma string específica
filtered_df = df[df['column_name'].str.contains('substring')]

# Exibe o DataFrame filtrado
print(filtered_df)

Este código extrai as linhas onde column_name contém substring.

Com esses métodos de filtragem, você pode extrair os dados necessários de maneira eficiente. A seguir, explicaremos como agregar dados de arquivos CSV.

Agregando Dados de Arquivos CSV

A agregação de dados é essencial para resumir informações e obter estatísticas com base em condições específicas. Com pandas, é fácil agregar dados. Abaixo apresentamos métodos básicos de agregação.

Obtenção de Estatísticas Básicas

Primeiro, veja como obter informações estatísticas básicas para o DataFrame inteiro.

import pandas as pd

# Especifica o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Lê o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Exibe as estatísticas básicas
print(df.describe())

Este código usa o método describe para exibir estatísticas básicas (média, desvio padrão, valor mínimo, valor máximo, etc.) do DataFrame.

Agregação de Colunas Específicas

Para agregar valores de uma coluna específica, faça o seguinte:

# Calcula a soma de 'column_name'
sum_value = df['column_name'].sum()
print(f"Sum of column_name: {sum_value}")

# Calcula a média de 'column_name'
mean_value = df['column_name'].mean()
print(f"Mean of column_name: {mean_value}")

Este código calcula a soma e a média da coluna column_name.

Agregação por Grupo

Também é possível agrupar dados e calcular agregações para cada grupo. Veja o exemplo abaixo.

# Agrupa por 'group_column' e calcula a média de 'value_column'
grouped_df = df.groupby('group_column')['value_column'].mean()
print(grouped_df)

Este código agrupa os dados pela coluna group_column e calcula a média de value_column para cada grupo.

Agregação com Tabelas Dinâmicas (Pivot Tables)

Para agregações mais complexas, é possível usar tabelas dinâmicas (pivot tables).

# Cria uma tabela dinâmica
pivot_table = pd.pivot_table(df, values='value_column', index='index_column', columns='columns_column', aggfunc='sum')
print(pivot_table)

Este código cria uma tabela dinâmica somando os valores de value_column de acordo com a combinação de index_column e columns_column.

Usando esses métodos de agregação, você pode resumir dados de arquivos CSV de forma eficiente e obter insights. A seguir, explicaremos como atualizar dados em arquivos CSV.

Atualizando Dados de Arquivos CSV

Atualizar dados em um arquivo CSV existente é uma tarefa importante para a manutenção e correção de dados. Com pandas, você pode facilmente atualizar valores específicos no DataFrame. Abaixo estão as etapas para realizar isso.

Atualizando Valores Específicos

Para atualizar valores específicos em um DataFrame, defina uma condição e altere o valor conforme necessário.

import pandas as pd

# Especifica o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Lê o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Atualiza 'target_column' para as linhas onde o valor de 'column_name' corresponde a 'old_value'
df.loc[df['column_name'] == 'old_value', 'target_column'] = 'new_value'

# Exibe o DataFrame atualizado
print(df)

Este código atualiza o valor de target_column para new_value nas linhas onde o valor de column_name é igual a old_value.

Atualizando Vários Valores de Uma Só Vez

Para atualizar múltiplos valores de uma só vez, faça o seguinte:

# Atualiza múltiplos valores com base em uma condição
df.loc[df['column_name'] > 10, 'target_column'] = 'updated_value'

# Exibe o DataFrame atualizado
print(df)

Este código atualiza o valor de target_column para updated_value nas linhas onde o valor de column_name é maior que 10.

Atualizando Valores em Todo o DataFrame

Para substituir valores específicos em todo o DataFrame, faça o seguinte:

# Substitui valores específicos no DataFrame inteiro
df.replace({'old_value': 'new_value'}, inplace=True)

# Exibe o DataFrame atualizado
print(df)

Este código substitui old_value por new_value em todo o DataFrame.

Gravando os Dados Atualizados em um Arquivo CSV

Para gravar o DataFrame atualizado em um arquivo CSV, use a função to_csv.

# Grava o DataFrame atualizado em um arquivo CSV
df.to_csv('updated_data.csv', index=False)

Este código grava o conteúdo do DataFrame atualizado em um novo arquivo CSV. Especificar index=False impede que os números das linhas sejam gravados.

Com esses métodos, é possível atualizar eficientemente os dados em arquivos CSV existentes. A seguir, explicaremos como adicionar novos dados a um arquivo CSV.

Adicionar novos dados a um arquivo CSV

Adicionar novos dados a um arquivo CSV existente é importante para expandir ou registrar dados de forma contínua. Aqui está um guia sobre como adicionar novos dados facilmente a um arquivo CSV existente usando pandas.

Adicionar uma nova linha a um DataFrame

Para adicionar novos dados a um DataFrame, utilize o método append.

import pandas as pd

# Especificar o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Ler o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Definir os novos dados como um dicionário
new_data = {'column1': 'value1', 'column2': 'value2', 'column3': 'value3'}

# Adicionar os novos dados ao DataFrame
df = df.append(new_data, ignore_index=True)

# Exibir o DataFrame atualizado
print(df)

Neste código, os novos dados são definidos em formato de dicionário e adicionados ao DataFrame. Ao especificar ignore_index=True, o índice é redefinido e a nova linha é adicionada.

Adicionar várias novas linhas

Se você precisar adicionar várias novas linhas de uma vez, faça da seguinte forma:

# Definir novos dados como uma lista
new_data_list = [
    {'column1': 'value1', 'column2': 'value2', 'column3': 'value3'},
    {'column1': 'value4', 'column2': 'value5', 'column3': 'value6'}
]

# Adicionar os novos dados ao DataFrame
df = df.append(new_data_list, ignore_index=True)

# Exibir o DataFrame atualizado
print(df)

Neste código, os novos dados são definidos como uma lista e adicionados em bloco ao DataFrame.

Salvar os dados adicionados no arquivo CSV

Para salvar o DataFrame atualizado no arquivo CSV existente, utilize a função to_csv.

# Salvar o DataFrame atualizado no arquivo CSV
df.to_csv('data.csv', index=False)

Neste código, o conteúdo do DataFrame é sobrescrito no arquivo CSV.

Adicionar novos dados ao arquivo CSV existente

Você também pode anexar novos dados ao arquivo CSV existente. Nesse caso, use o modo mode='a' (modo de anexação).

# Criar um novo DataFrame com os novos dados
new_data_df = pd.DataFrame([{'column1': 'value1', 'column2': 'value2', 'column3': 'value3'}])

# Anexar os novos dados ao arquivo CSV existente
new_data_df.to_csv('data.csv', mode='a', header=False, index=False)

Neste código, um novo DataFrame é anexado ao arquivo CSV existente. Ao especificar header=False, a linha de cabeçalho não é escrita novamente.

Utilizando esses métodos, é possível adicionar novos dados a um arquivo CSV de forma eficiente. A seguir, será explicado como converter um arquivo CSV para outros formatos.

Converter um arquivo CSV para outros formatos

Converter os dados de um arquivo CSV para outros formatos possibilita o uso em diferentes aplicativos e ferramentas. Aqui está um guia sobre como converter um arquivo CSV para formatos como Excel e JSON usando pandas.

Converter um arquivo CSV para Excel

Para converter um arquivo CSV para Excel usando pandas, utilize o método to_excel.

import pandas as pd

# Especificar o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Ler o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Especificar o caminho do arquivo Excel
excel_file_path = 'data.xlsx'
df.to_excel(excel_file_path, index=False)

print(f"Arquivo CSV convertido para Excel ({excel_file_path}).")

Neste código, o DataFrame lido com o método read_csv é convertido para um arquivo Excel com o método to_excel.

Converter um arquivo CSV para JSON

Da mesma forma, para converter um arquivo CSV para JSON, utilize o método to_json.

# Especificar o caminho do arquivo JSON
json_file_path = 'data.json'
df.to_json(json_file_path, orient='records', lines=True)

print(f"Arquivo CSV convertido para JSON ({json_file_path}).")

Neste código, o método to_json é utilizado para converter o DataFrame em um arquivo JSON. Com os parâmetros orient='records' e lines=True, cada linha é salva como um objeto JSON independente.

Converter um arquivo CSV para um banco de dados SQL

Para importar os dados de um arquivo CSV para um banco de dados SQL, use a biblioteca SQLAlchemy.

from sqlalchemy import create_engine

# Criar um engine de conexão ao banco de dados
engine = create_engine('sqlite:///data.db')

# Salvar o DataFrame no banco de dados SQL
df.to_sql('table_name', engine, if_exists='replace', index=False)

print("Arquivo CSV convertido para banco de dados SQL.")

Neste código, o banco de dados SQLite é utilizado para salvar os dados do DataFrame em uma tabela SQL. O parâmetro if_exists='replace' substitui a tabela existente.

Converter um arquivo CSV para HTML

Para salvar os dados do arquivo CSV como uma tabela HTML, utilize o método to_html.

# Salvar o DataFrame como um arquivo HTML
html_file_path = 'data.html'
df.to_html(html_file_path, index=False)

print(f"Arquivo CSV convertido para HTML ({html_file_path}).")

Neste código, o método to_html é utilizado para converter o DataFrame em um arquivo HTML.

Com esses métodos, é possível converter os dados de um arquivo CSV para o formato necessário de forma simples. A seguir, será explicado como lidar eficientemente com arquivos CSV de grande porte.

Processamento eficiente de arquivos CSV de grande porte

Ao processar arquivos CSV de grande porte, é importante considerar a eficiência de memória e desempenho. Mesmo usando pandas, algumas técnicas podem ser aplicadas para lidar com grandes volumes de dados de maneira eficiente.

Ler o arquivo CSV em partes

Ler um arquivo CSV inteiro de uma vez pode causar problemas de memória insuficiente. Leia apenas as partes necessárias para reduzir o consumo de memória.

import pandas as pd

# Especificar o caminho do arquivo CSV
csv_file_path = 'large_data.csv'

# Ler o arquivo em partes
chunksize = 10000  # Número de linhas a serem lidas por vez
for chunk in pd.read_csv(csv_file_path, chunksize=chunksize):
    # Processar cada parte
    print(chunk.head())

Neste código, ao especificar o parâmetro chunksize, o arquivo CSV é lido em partes e cada uma delas é processada individualmente.

Ler apenas as colunas necessárias

Se não for necessário ler todas as colunas, especifique apenas as colunas necessárias para reduzir o uso de memória.

# Especificar as colunas necessárias
columns_to_use = ['column1', 'column2', 'column3']
df = pd.read_csv(csv_file_path, usecols=columns_to_use)

# Exibir os dados lidos
print(df.head())

Neste código, o parâmetro usecols é utilizado para especificar as colunas a serem lidas.

Otimizar os tipos de dados

Os tipos de dados padrão podem consumir muita memória. Especificar tipos de dados apropriados pode reduzir o uso de memória.

# Especificar tipos de dados
dtype_spec = {'column1': 'int32', 'column2': 'float32', 'column3': 'category'}
df = pd.read_csv(csv_file_path, dtype=dtype_spec)

# Exibir os tipos de dados e as primeiras linhas
print(df.dtypes)
print(df.head())

Neste código, o parâmetro dtype é utilizado para especificar o tipo de dado de cada coluna.

Liberar memória após o processamento dos dados

Você pode liberar explicitamente a memória ao deletar DataFrames que não são mais necessários.

import gc

# Processar os dados
# ...

# Deletar o DataFrame e liberar memória
del df
gc.collect()  # Chamar o coletor de lixo

Neste código, o DataFrame é deletado e o coletor de lixo é chamado para liberar a memória.

Processamento paralelo com Dask

Você pode usar Dask em vez de pandas para processar grandes volumes de dados em paralelo.

import dask.dataframe as dd

# Ler o arquivo CSV como um DataFrame do Dask
df = dd.read_csv(csv_file_path)

# Operações no DataFrame do Dask
result = df.groupby('column1').sum().compute()

# Exibir o resultado
print(result)

Neste código, o Dask é utilizado para ler o arquivo CSV e realizar operações em paralelo, como a agregação.

Com essas técnicas, é possível processar arquivos CSV de grande porte de maneira eficiente. A seguir, será explicado o tratamento de erros e a validação de dados.

Manipulação de Erros e Validação de Dados

Ao lidar com arquivos CSV, a manipulação de erros e a validação de dados são fundamentais para manter a qualidade dos dados. Este artigo apresenta como usar o pandas para validar dados e tratar erros.

Validação de Dados

A validação de dados é realizada para verificar a consistência e a precisão dos dados. Abaixo, são apresentados métodos comuns para validação de dados.

Detecção de Valores Ausentes

Apresentamos um método para detectar valores ausentes em um DataFrame.

import pandas as pd

# Especificar o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Ler o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Detecção de valores ausentes
missing_values = df.isnull().sum()
print("Número de valores ausentes:\n", missing_values)

Este código utiliza o método isnull para detectar valores ausentes e exibir a contagem desses valores.

Detecção de Dados Duplicados

Apresentamos um método para detectar linhas duplicadas em um DataFrame.

# Detecção de linhas duplicadas
duplicate_rows = df.duplicated().sum()
print("Número de linhas duplicadas:", duplicate_rows)

Este código utiliza o método duplicated para detectar linhas duplicadas e exibir a contagem dessas linhas.

Detecção de Dados que Atendem a Condições Específicas

Validamos se os dados atendem a condições específicas.

# Detecção de linhas onde os valores na coluna 'column_name' são negativos
invalid_data = df[df['column_name'] < 0]
print("Dados inválidos:\n", invalid_data)

Este código detecta linhas onde os valores de column_name são negativos.

Manipulação de Erros

Apresentamos métodos para tratar erros que podem ocorrer durante o processamento de arquivos CSV.

Manipulação de Erros ao Ler Arquivos

Apresentamos como lidar com erros que ocorrem durante a leitura de arquivos CSV.

try:
    df = pd.read_csv(csv_file_path)
except FileNotFoundError:
    print(f"Arquivo não encontrado: {csv_file_path}")
except pd.errors.EmptyDataError:
    print("O arquivo está vazio")
except pd.errors.ParserError:
    print("Erro ao analisar o arquivo")

Este código utiliza um bloco try-except para tratar possíveis erros que podem ocorrer ao ler arquivos CSV.

Manipulação de Erros Durante a Conversão de Dados

Apresentamos como lidar com erros que ocorrem durante a conversão de tipos de dados.

# Manipulação de erros ao converter 'column_name' para numérico
df['column_name'] = pd.to_numeric(df['column_name'], errors='coerce')
print("Dados após conversão:\n", df)

Este código utiliza o método to_numeric para converter dados em valores numéricos, substituindo valores inválidos por NaN.

Registro de Erros

Apresentamos como registrar detalhes de erros em um arquivo de log.

import logging

# Configuração do log
logging.basicConfig(filename='errors.log', level=logging.ERROR)

# Exemplo de registro de erros
try:
    df = pd.read_csv(csv_file_path)
except Exception as e:
    logging.error("Ocorreu um erro", exc_info=True)

Este código utiliza o módulo logging para registrar erros em um arquivo de log.

Usando esses métodos, você pode lidar adequadamente com erros durante o processamento de arquivos CSV, mantendo a qualidade dos dados. A seguir, vamos apresentar um exemplo prático de análise de dados usando arquivos CSV.

Exemplo Prático: Análise de Dados com Arquivos CSV

Realizar análises de dados com arquivos CSV permite obter insights valiosos a partir dos dados. Este artigo apresenta métodos básicos de análise de dados usando pandas.

Leitura e Pré-Processamento de Dados

Primeiro, leia o arquivo CSV e realize o pré-processamento dos dados.

import pandas as pd

# Especificar o caminho do arquivo CSV
csv_file_path = 'data.csv'

# Ler o arquivo CSV como um DataFrame
df = pd.read_csv(csv_file_path)

# Exibir informações básicas dos dados
print(df.info())

# Verificar valores ausentes
print("Número de valores ausentes:\n", df.isnull().sum())

# Tratar valores ausentes (exemplo: preencher com 0)
df.fillna(0, inplace=True)

Este código exibe informações básicas dos dados e realiza o pré-processamento preenchendo valores ausentes com 0.

Cálculo de Estatísticas Básicas

Calcule estatísticas básicas dos dados.

# Exibir estatísticas básicas
print(df.describe())

Este código utiliza o método describe para exibir estatísticas básicas do DataFrame.

Visualização de Dados

A visualização de dados permite identificar tendências e padrões de forma visual. Apresentamos como criar gráficos básicos usando matplotlib.

import matplotlib.pyplot as plt

# Criar histograma da coluna 'column1'
df['column1'].hist()
plt.title('Histograma da Coluna 1')
plt.xlabel('Valores')
plt.ylabel('Frequência')
plt.show()

# Criar gráfico de dispersão entre 'column1' e 'column2'
df.plot.scatter(x='column1', y='column2')
plt.title('Gráfico de Dispersão: Coluna 1 vs Coluna 2')
plt.xlabel('Coluna 1')
plt.ylabel('Coluna 2')
plt.show()

Este código cria um histograma e um gráfico de dispersão para visualizar a distribuição e a correlação dos dados.

Agrupamento e Agregação

Apresentamos como agrupar e agregar dados para obter resultados baseados em condições específicas.

# Agrupar por 'category_column' e calcular o total de 'value_column'
grouped_df = df.groupby('category_column')['value_column'].sum()
print(grouped_df)

# Visualizar os dados agrupados em um gráfico de barras
grouped_df.plot(kind='bar')
plt.title('Valor Total por Categoria')
plt.xlabel('Categoria')
plt.ylabel('Valor Total')
plt.show()

Este código agrupa dados por categorias, calcula o total de valores e os visualiza em um gráfico de barras.

Análise de Dados Temporais

Apresentamos métodos para análise de dados temporais.

# Converter coluna de datas para o tipo Datetime
df['date_column'] = pd.to_datetime(df['date_column'])

# Configurar a coluna de datas como índice
df.set_index('date_column', inplace=True)

# Reamostrar dados diários para mensais, calculando a média
monthly_avg = df.resample('M').mean()
print(monthly_avg)

# Visualizar a média mensal em um gráfico de linha
monthly_avg.plot()
plt.title('Média Mensal dos Valores')
plt.xlabel('Mês')
plt.ylabel('Valor Médio')
plt.show()

Este código reamostra dados diários para médias mensais e as visualiza em um gráfico de linha.

Construção de Modelos de Machine Learning

Por fim, apresentamos como construir um modelo simples de aprendizado de máquina usando dados de um arquivo CSV.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# Configurar variáveis de entrada e alvo
X = df[['feature1', 'feature2']]
y = df['target']

# Dividir os dados em conjuntos de treino e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Criar o modelo de regressão linear
model = LinearRegression()
model.fit(X_train, y_train)

# Fazer previsões no conjunto de teste
y_pred = model.predict(X_test)

# Avaliar o modelo
mse = mean_squared_error(y_test, y_pred)
print(f'Erro Quadrático Médio: {mse}')

Este código cria um modelo de regressão linear, treina-o com dados de treino, realiza previsões com dados de teste e avalia o desempenho do modelo.

Com esses métodos, você pode analisar dados de arquivos CSV de forma eficaz e extrair insights valiosos. A seguir, vamos apresentar exercícios para praticar o que foi aprendido.

Exercícios

A seguir, apresentamos exercícios para praticar os conceitos aprendidos. Resolva-os para aprimorar suas habilidades na manipulação de arquivos CSV e análise de dados.

Exercício 1: Operações Básicas com Arquivos CSV

  1. Crie um arquivo CSV chamado data.csv contendo as seguintes informações em um DataFrame e salve-o.
  • Colunas: ID, Nome, Idade, Salário
  • Dados:
    1, Alice, 30, 50000 2, Bob, 25, 45000 3, Charlie, 35, 55000
  1. Leia o arquivo CSV e filtre as linhas onde a idade é maior ou igual a 30.

Código de Exemplo

import pandas as pd

# Criar o DataFrame
data = {'ID': [1, 2, 3],
        'Nome': ['Alice', 'Bob', 'Charlie'],
        'Idade': [30, 25, 35],
        'Salário': [50000, 45000, 55000]}

df = pd.Data

Frame(data)

# Salvar como arquivo CSV
df.to_csv('data.csv', index=False)

# Ler o arquivo CSV
df = pd.read_csv('data.csv')

# Filtrar linhas onde a idade é maior ou igual a 30
filtered_df = df[df['Idade'] >= 30]
print(filtered_df)

Exercício 2: Agrupamento e Visualização de Dados

  1. Crie um arquivo CSV chamado sales.csv contendo as seguintes informações em um DataFrame e salve-o.
  • Colunas: Data, Produto, Quantidade, Preço
  • Dados:
    2023-01-01, A, 10, 100 2023-01-02, B, 5, 150 2023-01-03, A, 7, 100 2023-01-04, B, 3, 150
  1. Leia o arquivo CSV e calcule o total de vendas (Quantidade * Preço) para cada produto. Visualize os resultados em um gráfico de barras.

Código de Exemplo

# Criar o DataFrame
data = {'Data': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04'],
        'Produto': ['A', 'B', 'A', 'B'],
        'Quantidade': [10, 5, 7, 3],
        'Preço': [100, 150, 100, 150]}

df = pd.DataFrame(data)

# Salvar como arquivo CSV
df.to_csv('sales.csv', index=False)

# Ler o arquivo CSV
df = pd.read_csv('sales.csv')

# Calcular total de vendas
df['Total_Vendas'] = df['Quantidade'] * df['Preço']

# Agrupar por produto e calcular o total de vendas
grouped_df = df.groupby('Produto')['Total_Vendas'].sum()

# Visualizar em gráfico de barras
grouped_df.plot(kind='bar', title='Total de Vendas por Produto')
plt.xlabel('Produto')
plt.ylabel('Total de Vendas')
plt.show()

Exercício 3: Análise de Dados Temporais

  1. Crie um arquivo CSV chamado temperature.csv contendo as seguintes informações em um DataFrame e salve-o.
  • Colunas: Data, Temperatura
  • Dados:
    2023-01-01, 5 2023-01-02, 7 2023-01-03, 6 2023-01-04, 5
  1. Leia o arquivo CSV, reamostre os dados diários para calcular a temperatura média mensal e visualize os resultados em um gráfico de linha.

Código de Exemplo

# Criar o DataFrame
data = {'Data': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04'],
        'Temperatura': [5, 7, 6, 5]}

df = pd.DataFrame(data)

# Salvar como arquivo CSV
df.to_csv('temperature.csv', index=False)

# Ler o arquivo CSV
df = pd.read_csv('temperature.csv')

# Converter coluna de datas para o tipo Datetime
df['Data'] = pd.to_datetime(df['Data'])

# Configurar a coluna de datas como índice
df.set_index('Data', inplace=True)

# Reamostrar para média mensal
monthly_avg = df.resample('M').mean()

# Visualizar em gráfico de linha
monthly_avg.plot(title='Temperatura Média Mensal')
plt.xlabel('Mês')
plt.ylabel('Temperatura Média')
plt.show()

Ao resolver esses exercícios, você aprimorará suas habilidades práticas em manipulação de arquivos CSV e análise de dados. A seguir, faremos uma revisão do que foi aprendido.

Conclusão

Neste guia, aprendemos como manipular arquivos CSV de forma eficiente usando Python. Desde operações básicas de leitura e gravação até manipulações avançadas de dados com pandas, incluindo validação de dados, tratamento de erros e conversões entre diferentes formatos de dados.

Além disso, exploramos exemplos práticos de análise de dados e fornecemos exercícios para consolidar os conceitos aprendidos. Com as habilidades adquiridas, você será capaz de realizar tarefas diárias de processamento e análise de dados com maior eficiência.

Aplique o que foi aprendido neste guia para explorar diversos cenários de manipulação e análise de dados. Boa prática!

Índice