Questão de Programação — Linguagens de programação — FGV 2025
Programação›Linguagens de programação
Código
fg106593
Banca
FGV
Órgão
CGE-SP
Ano
2025
Nível
Superior
Cargo
Auditor Estadual de Controle - Tecnologia da Informação - tarde
Um cientista de dados utiliza a linguagem Python e a biblioteca Pandas para processar um dataset de despesas da Controladoria. Ele precisa realizar uma operação que combine dados de dois DataFrames (despesas_2023 e despesas_2024) com base em uma coluna-chave comum (ID_Gestor), mas o novo DataFrame resultante deve incluir apenas os registros que possuem correspondência em ambos os DataFrames.
Assinale a opção que indica a operação fundamental do Pandas, análoga a uma operação de join em SQL, que deve ser usada para alcançar esse resultado, que inclui apenas a intersecção dos registros.
Apd.concat(), usando o argumento axis=0 para empilhamento vertical.
Bpd.merge(),usando o argumento how='inner'.
Cpd.merge(),usando o argumento how='left'.
Dpd.join(), usando a função pd.apply() para intersecção manual.
Epd.pivot_table(), para agregação e resumo.
Revelar gabarito e comentário▾
GabaritoB — pd.merge(),usando o argumento how='inner'.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Pandas – Junção de DataFrames (Inner Join)
Gabarito: letra B. A operação que combina dois DataFrames com base em uma coluna-chave comum, retornando apenas os registros que possuem correspondência em ambos, é o pd.merge() com o argumento how='inner'. Esse é o equivalente ao INNER JOIN do SQL, que retorna exatamente a intersecção das linhas.
A banca testa o conhecimento das funções fundamentais do Pandas para combinação de dados. O requisito é claro: incluir apenas os registros que aparecem em ambos os DataFrames (intersecção). Vamos analisar cada alternativa.
Alternativa A — ❌ Incorreta
pd.concat(), com axis=0, realiza o empilhamento vertical dos DataFrames um sobre o outro, como se fosse um UNION ALL no SQL. Não há correspondência por chave; ele apenas junta as linhas mantendo todas. Portanto, não atende ao requisito de filtrar somente a intersecção.
Alternativa B — ✅ Correta ⟵ GABARITO
pd.merge() com how='inner' faz exatamente o que o enunciado pede: combina as linhas dos dois DataFrames onde a coluna-chave (ID_Gestor) existe em ambos, resultando apenas nos registros com correspondência (intersecção). É análogo ao INNER JOIN do SQL.
Alternativa C — ❌ Incorreta
pd.merge() com how='left' realiza um LEFT JOIN: mantém todas as linhas do DataFrame da esquerda e inclui as correspondentes da direita, preenchendo com NaN onde não há correspondência. Isso não filtra apenas a intersecção, pois preserva registros sem par.
Alternativa D — ❌ Incorreta
pd.join() é um método de DataFrame que também pode fazer junções, mas a alternativa sugere usar pd.apply() para intersecção manual — o que é ineficiente e não é a forma idiomática. A forma correta seria usar pd.merge() ou DataFrame.join() com parâmetros adequados. A descrição está incorreta.
Alternativa E — ❌ Incorreta
pd.pivot_table() é usado para criar tabelas dinâmicas (pivot), agregando e resumindo dados. Não realiza junção de DataFrames por chave.
NÃO CAIA NESSA!
A grande armadilha é confundir pd.concat() com pd.merge(). O concat apenas empilha, enquanto o merge faz junção baseada em chave. Lembre-se: se você precisa de algo equivalente a JOIN no SQL, use merge. Se precisa empilhar, use concat.