Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025

ProgramaçãoLinguagens 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.
  1. Aclientes[clientes.duplicated()]
  2. Bclientes[clientes.duplicated(subset = ['cpf', 'nome_cliente'])]
  3. Cclientes[clientes.duplicated(subset = ['nome_cliente'], keep='last')]
  4. Dclientes.drop_duplicates(subset = ['cpf', 'nome_cliente'], keep = 'first')
  5. Eclientes.drop_duplicates()
Revelar gabarito e comentário

GabaritoB — clientes[clientes.duplicated(subset = ['cpf', '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.

  • drop_duplicates() remove as duplicatas; não serve para identificação.

Gabarito: letra B.

Link permanente: /questoes/ce196330