← Questões de Programação

Programação · FGV · 2025

Questão comentada de Programação

A biblioteca Pandas é amplamente utilizada para manipulação e análise de dados em Python. Considere o trecho de código a seguir. import pandas as pd dados = {'Cidade': ['Boa Vista', 'Iracema', 'Amajari'], 'Categoria': ['A', 'B', 'A'], '2022': [320, 100, 50], '2023': [250, 50, 300], '2024': [300, 75, 100]} df = pd.DataFrame(dados, columns=['Cidade','Categoria','2022', '2023','2024']) print(df.groupby('Categoria')[['2022', '2023', '2024']].max().iloc[0,1]) O valor numérico exibido como saída ao comando print será

Gabarito: A

Quando voce usa groupby() no Pandas, primeiro os dados sao separados pela coluna escolhida e, depois, voce aplica a funcao de agregacao. Aqui, `df.groupby('Categoria')[['2022', '2023', '2024']].max()` vai calcular o maior valor de cada coluna numerica dentro de cada categoria (`A` e `B`). O resultado dessa operacao fica com as linhas das categorias e as colunas `2022`, `2023` e `2024`. Para a categoria `A`, os maximos sao 320, 300 e 300. Para a categoria `B`, os maximos sao 100, 50 e 75. Ate aqui, tudo certo e bem comportado. Depois vem o detalhe que costuma derrubar muita gente: `.iloc[0,1]` pega o elemento da primeira linha e da segunda coluna do DataFrame resultante. A primeira linha e a da categoria `A`, e a segunda coluna, entre `2022`, `2023` e `2024`, e a coluna `2023`. Logo, o valor exibido e 300. Ou seja, o gabarito A esta correto porque o codigo nao pega o maior valor geral, nem o da primeira coluna, nem o da ultima linha. Ele pega exatamente a celula na posicao [0,1] depois do `groupby` com `max`.

Continue treinando

Questões relacionadas