Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2025

ProgramaçãoLinguagens de programação
Código
fg122162
Banca
FGV
Órgão
TCE-RR
Ano
2025
Nível
Superior
Cargo
Auditor de Controle Externo - Tecnologia com Especialidade em Análise de Dados
Considere o código abaixo escrito na linguagem Python (versão 3.10.12) com uso das bibliotecas numpy (versão 1.26.4) e pandas (versão 2.2.2).<1> import numpy as np <2> import pandas as pd <3> x = np.array([('gama', 9), ('alfa', 3),('delta', 5),('epsilon', 7),('beta', 1)], dtype=[('a', 'U10'), ('b', 'i4')]) <4> y = pd.DataFrame(x) <5> z = y.sort_values(by="a") <6> print(z.iloc[2,1]) Com a execução do código acima, após o comando da linha <6> será escrito na tela
  1. A1
  2. B3
  3. C5
  4. D7
  5. Eum aviso da ocorrência de IndexError
Revelar gabarito e comentário

GabaritoC — 5

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”.

Python: ordenação e acesso com pandas

Gabarito: letra C. O código cria um array NumPy estruturado com dados, converte em DataFrame pandas, ordena pela coluna "a" (strings) em ordem alfabética e, em seguida, imprime o valor da terceira linha (índice 2) da segunda coluna (índice 1). Esse valor é 5.

Passo a passo:

  1. x = np.array([...], dtype=[('a', 'U10'), ('b', 'i4')]) – Cria um array estruturado com 5 registros: os pares ('gama',9), ('alfa',3), ('delta',5), ('epsilon',7), ('beta',1).

  2. y = pd.DataFrame(x) – Converte o array em DataFrame. O DataFrame terá duas colunas: 'a' (strings) e 'b' (inteiros), na mesma ordem original.

  3. z = y.sort_values(by="a") – Ordena o DataFrame pela coluna 'a' em ordem alfabética crescente. A ordem resultante das linhas é:

    • 0: alfa (b=3)

    • 1: beta (b=1)

    • 2: delta (b=5)

    • 3: epsilon (b=7)

    • 4: gama (b=9)

  4. print(z.iloc[2,1])iloc acessa por posição inteira: linha 2 (terceira linha, zero-indexada) e coluna 1 (segunda coluna, zero-indexada). A linha 2 é a que contém 'delta', e a coluna 1 é a coluna 'b', cujo valor é 5.

Portanto, a saída é 5. Nenhum erro de índice ocorre porque o DataFrame tem 5 linhas (índices 0 a 4), e o acesso à linha 2 é válido.

  1. 1Cria array estruturado
  2. 2Converte em DataFrame
  3. 3Ordena por coluna 'a'
  4. 4Acessa iloc[2,1]
  5. 5Saída: 5
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O valor 1 corresponde à linha 1 (beta), não à linha 2.

Alternativa B — ❌ Incorreta

O valor 3 corresponde à linha 0 (alfa), não à linha 2.

Alternativa C — ✅ Correta ⟵ GABARITO

Conforme explicado, a saída é 5.

Alternativa D — ❌ Incorreta

O valor 7 corresponde à linha 3 (epsilon), não à linha 2.

Alternativa E — ❌ Incorreta

Não ocorre IndexError, pois o DataFrame tem 5 linhas e o acesso iloc[2,1] é perfeitamente válido.

Gabarito: letra C.

Link permanente: /questoes/fg122162