Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens de programação
Código
ce196330
Banca
CESPE / CEBRASPE
Órgão
CAESB-DF
Ano
2025
Nível
Superior
Cargo
Analista de Suporte ao Negócio - Analista de Sistemas
Durante uma auditoria em certa empresa de manutenção de hidrômetros, verificou-se que existem dados duplicados na entidade clientes (cpf, nome_cliente, endereco) do banco de dados, ou seja, o mesmo cliente aparece mais de uma vez com o mesmo cpf e nome_cliente, mas com endereços diferentes. Os dados do banco de dados foram carregados em um DataFrame clientes do Pandas.A partir dessa situação hipotética, assinale a opção que corresponde ao trecho de código que, caso executado, identificará os clientes duplicados ao utilizar como filtro apenas o cpf e o nome_cliente.
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: Identificação de duplicatas com subset
Gabarito: letra B. O método duplicated() com o parâmetro subset define quais colunas considerar para identificar duplicatas. Nesse caso, ao usar subset=['cpf', 'nome_cliente'], o Pandas marca como duplicado todo registro que repete o mesmo par nessas colunas, ignorando diferenças em outras colunas (como endereço).
A banca testa o conhecimento do parâmetro subset do método duplicated(). Sem ele, a função considera todas as colunas do DataFrame, o que não atenderia à situação descrita, pois os endereços são diferentes.
Alternativa A — ❌ Incorreta
clientes[clientes.duplicated()] usa duplicated() sem subset, portanto considera todas as colunas (cpf, nome_cliente, endereco). Como os endereços diferem, nenhuma linha seria marcada como duplicada, deixando de identificar os clientes repetidos.
Alternativa B — ✅ Correta ⟵ GABARITO
clientes[clientes.duplicated(subset=['cpf', 'nome_cliente'])] especifica exatamente as colunas que devem ser usadas para verificar duplicidade. Com isso, registros com mesmo cpf e nome_cliente (endereços diferentes) são considerados duplicados e retornados.
Alternativa C — ❌ Incorreta
clientes[clientes.duplicated(subset=['nome_cliente'], keep='last')] filtra apenas por nome_cliente, ignorando o CPF. Além disso, keep='last' marca como duplicada a primeira ocorrência, mas o erro principal é não incluir o CPF. Não atende ao critério desejado.
Alternativa D — ❌ Incorreta
clientes.drop_duplicates(subset=['cpf', 'nome_cliente'], keep='first') remove as duplicatas, retornando um DataFrame sem repetições. O enunciado pede identificar (selecionar) os registros duplicados, não removê-los.
Alternativa E — ❌ Incorreta
clientes.drop_duplicates() remove todas as linhas duplicadas considerando todas as colunas. Além de não ser o que se pede (identificar), também não usa subset, portanto não resolveria o caso.
PEGA ESSA DICA!
Para identificar duplicatas em Pandas, lembre-se:
duplicated() retorna uma série booleana (True para duplicatas).
O parâmetro subset define quais colunas considerar.
Use df[df.duplicated(subset=['col1', 'col2'])] para filtrar duplicatas.
Já drop_duplicates() remove as duplicatas; não serve para identificação.