1
resposta

Como retornar um índice de uma série em python passando o valor correspondente da coluna?

Dado o código abaixo:

df = pd.DataFrame(data = {'Fulano' : [8, 10, 4, 8, 6, 10, 8],
                          'Beltrano': [10, 2, 0.5, 1, 3, 9.5, 10],
                          'Sicrano': [7.5, 8, 7, 8, 8, 8.5, 7]},

                  index = ['Matemática',
                           'Português',
                           'Inglês',
                           'Geografia',
                           'História',
                           'Física',
                           'Química'])

df.rename_axis('Matérias', axis = 'columns', inplace=True)

notas_fulano = df['Fulano']
notas_fulano = notas_fulano.sort_values()
print ('\nNotas do Fulano ordenada..:\n{}'.format(notas_fulano))

elemento_md = int(notas_fulano.median())
print ('\nMediana das notas do aluno Fulano..:{}'.format(elemento_md))

Saída da execução do código acima:

Notas do Fulano ordenada..:
Inglês         4
História       6
Matemática     8
Geografia      8
Química        8
Português     10
Física        10
Name: Fulano, dtype: int64

Mediana das notas do aluno Fulano..:8

A dúvida é a seguinte. Tem como eu passar o valor 8 (mediana) e obter o índice corresponde da série notas_fulano, que no caso é Geografia?

Desde já agradeço a atenção.

1 resposta

Olá, Franciscarlos. Tudo bom?

A variável notas_fulano é um pandas.Series, então você pode fazer uma seleção com base nesse valor. Da seguinte maneira:

notas_fulano[notas_fulano == 8]

E como existem três disciplinas com o mesmo valor, teremos a seguinte saída:

Matemática    8
Geografia     8
Química       8
Name: Fulano, dtype: int64

Você não precisa necessariamente passar o valor manualmente, você também poderia passar a função da mediana desde que ela retornasse um valor válido que você pode usar como busca na sua Series.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Não é necessário fechar o tópico, outras pessoas podem ser ajudadas por ele :D