Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg084794
Banca
FGV
Órgão
EPE
Ano
2024
Nível
Superior
Cargo
Analista de Pesquisa Energética (Economia de Energia)
Considere o código a seguir, escrito na linguagem de programação Python (versão 3.11.3).<1> import pandas as pd<2> x = {"0": pd.Series([1.0, 2.0], index=["a", "b"]),<3> "1": pd.Series([3.0, 4.0, 5.0], index=["a", "b", "c"])}<4> x = pd.DataFrame(x)<5> y = x["1"][:2].iloc[-1]Assinale a opção que indica o valor que y recebe na linha <5>.
  1. A1.0
  2. B2.0
  3. C3.0
  4. D4.0
  5. ENaN
Revelar gabarito e comentário

GabaritoD — 4.0

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

Análise do código Pandas

Gabarito: letra D (y = 4.0). A expressão x["1"][:2] seleciona as duas primeiras linhas da coluna "1" por posição, e .iloc[-1] retorna o último elemento dessa seleção, que corresponde ao valor 4.0.

Linha 5 em detalhe:

  • x["1"] → Series com valores [3.0, 4.0, 5.0] e índice ["a","b","c"].

  • x["1"][:2] → slice posicional: retorna os elementos das posições 0 e 1, ou seja, [3.0, 4.0] com índice ["a","b"].

  • iloc[-1] → último elemento (posição -1) → 4.0.

  1. 1x["1"]
  2. 2[:2] (posicional)
  3. 3iloc[-1]
  4. 4Resultado: 4.0
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

1.0 é o valor da coluna "0" no índice "a", não se relaciona com a expressão.

Alternativa B — ❌ Incorreta

2.0 é o valor da coluna "0" no índice "b".

Alternativa C — ❌ Incorreta

3.0 é o primeiro elemento da coluna "1", mas o slicing [:2] seguido de iloc[-1] seleciona o segundo elemento, não o primeiro.

Alternativa D — ✅ Correta ⟵ GABARITO

Conforme explicação, y = 4.0.

Alternativa E — ❌ Incorreta

Não ocorre NaN porque todos os índices envolvidos existem. O NaN só apareceria se houvesse alinhamento com índices ausentes, o que não é o caso.

PEGA ESSA DICA!

A confusão comum é pensar que [:2] usa rótulos (label-based) quando o índice não é numérico. Na verdade, [] com slice numérico é sempre posicional. Para slice baseado em rótulo, use .loc. Lembre-se: iloc = posição, loc = rótulo.

Gabarito: letra D.

Link permanente: /questoes/fg084794