O campo da Ciência de Dados é dinâmico e está em constante ...

Próximas questões
Com base no mesmo assunto
Q3331503 Banco de Dados
O campo da Ciência de Dados é dinâmico e está em constante evolução, com o desenvolvimento de tecnologias e ferramentas que tornam a análise de dados mais eficiente e acessível. Uma dessas ferramentas é a biblioteca Pandas para a linguagem de programação Python. Por ser uma biblioteca de análise de dados conhecida principalmente por suas estruturas de dados poderosas que facilitam a manipulação de dados, como dataframes, é amplamente utilizada em processos de ETL (Extract, Transform and Load) por engenheiros e cientistas de dados que necessitam pré-processar e transferir dados entre plataformas de dados, como, por exemplo, bancos de dados relacionais e Data Lakes.

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:
Alternativas

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