O campo da Ciência de Dados é dinâmico e está em constante ...
Considere o seguinte código Python que implementa parte de um ETL sobre a tabela Financiamento.
import pandas as pd from sqlalchemy import create_engine from datetime import datetime
engine = create_engine(“postgresql:// postgres:postgres@localhost:5432/bd_pesquisa”) query = “SELECT * FROM Financiamento” df = pd.read_sql_query(con=engine.connect(), sql=sql_text(query)) df[‘data_inicio’] = pd.to_datetime(df[‘data_ inicio’]).dt.strftime(‘%d/%m/%Y’) df[‘data_fim’] = pd.to_datetime(df[‘data_ fim’]).dt.strftime(‘%d/%m/%Y’) df.to_csv(‘financiamentos_transformados.csv’, index=False)
Observe as afirmativas a seguir sobre a execução do código.
I. O código se conecta a um banco de dados PostgreSQL usando a biblioteca SQLAlchemy e extrai todos os dados da tabela Financiamento.
II. As colunas data_inicio e data_fim são transformadas para o formato DD/MM/AAAA, mas esses dados não são atualizados no banco de dados.
III. O dataframe resultante da transformação é salvo em um arquivo CSV chamado financiamentos_transformados.csv na máquina local, incluindo o índice do datadrame como uma coluna adicional.
Sobre as afirmativas acima, pode-se dizer que:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: C - apenas I e II estão corretas.
Tema Central da Questão: A questão aborda aspectos do uso da biblioteca Pandas em Python para operações de ETL, especificamente na transformação de dados retirados de um banco PostgreSQL e no salvamento desses dados em um arquivo CSV. O conhecimento necessário para resolver essa questão inclui compreensão sobre manipulação de dataframes, conexão com bancos de dados utilizando SQLAlchemy e operações de transformação e exportação de dados.
Resumo Teórico: - ETL (Extract, Transform, Load) é um processo fundamental na integração de dados, onde se extrai dados de diferentes fontes, transforma-os em um formato adequado e os carrega em sistemas de dados como data warehouses ou data lakes. - A biblioteca Pandas facilita operações de ETL em Python, principalmente através da manipulação de dataframes. - A SQLAlchemy é um toolkit SQL em Python que permite interagir com bancos de dados de forma eficiente.
Justificação da Alternativa Correta:
Afirmativa I: Correta. O código mostrado usa a biblioteca SQLAlchemy para criar uma conexão com um banco de dados PostgreSQL e extrai dados da tabela "Financiamento" usando uma query SQL. Isso é evidente na linha que define a conexão e na utilização de pd.read_sql_query para ler os dados.
Afirmativa II: Correta. As colunas data_inicio e data_fim são convertidas para o formato de string 'DD/MM/AAAA', mas essas mudanças ocorrem apenas no dataframe em memória e não são enviadas de volta ao banco de dados, o que significa que o banco não é atualizado.
Afirmativa III: Incorreta. O dataframe é, sim, salvo em um arquivo CSV, mas o parâmetro index=False na função to_csv indica que o índice do dataframe não será incluído como uma coluna no arquivo CSV.
Análise das Alternativas Incorretas:
Alternativa A: Incorreta, pois a afirmativa II também está correta.
Alternativa B: Incorreta, pois a afirmativa I também está correta.
Alternativa D: Incorreta, pois a afirmativa III está errada devido à questão do índice.
Alternativa E: Incorreta, pois a afirmativa III não está correta.
Essa questão testa a habilidade de interpretar código Python que realiza operações comuns de ETL, além de verificar a compreensão de como as transformações de dados afetam bancos de dados e arquivos de saída. É crucial prestar atenção aos detalhes sobre como os dados são manipulados e salvos para responder corretamente.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo