← Questões de Programação

Programação · FGV · 2025

Questão comentada de Programação

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

Gabarito: C

Aqui a banca mistura dois assuntos bem tranquilos: DataFrame do pandas e ordenação. O array `x` foi criado com campos nomeados, `a` para textos e `b` para números. Quando você faz `pd.DataFrame(x)`, o pandas monta uma tabela com essas duas colunas, preservando os valores originais. Depois, `sort_values(by="a")` ordena as linhas em ordem alfabética pela coluna `a`. A sequência passa a ser: `alfa`, `beta`, `delta`, `epsilon`, `gama`. Ou seja, o pandas não mexe nos números, só reorganiza as linhas conforme o texto da primeira coluna. Na linha `print(z.iloc[2,1])`, o comando pega a linha de índice posicional 2, que é a terceira linha dessa tabela ordenada, e a coluna 1, isto é, a segunda coluna. Nessa posição, o valor armazenado em `b` é 5. Por isso o gabarito é a alternativa C. Não há erro de índice nem confusão de ordem: é só lembrar que `iloc` usa posição, não rótulo, e que a ordenação foi feita pela coluna `a`.

Continue treinando

Questões relacionadas