Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Média salarial

media =  pd.value_counts (pd.cut(dados.Renda,
       bins = Classes,
       labels = labels,
       include_lowest = True
       ))

media

Como faço para ao invés de contagem, ele traga a média salarial por categoria?

1 resposta
solução!

Boas Leonardo, tudo bem? Espero que sim!

Inicialmente peço desculpas pela demora em responder.

Apenas com as função cut() e value_counts() do pandas, isso não é possível. Entretanto, existem diversas formas de trazer a média salarial, vou mostrar uma delas:

Primeiro, vamos usar o resultado do cut(), que é um panda.Series para criar mais uma coluna na tabela de dados. Fazemos assim:

classes = [0, 1576, 3152, 7880, 15760, 200000]

labels = ["E","D","C","B","A"]

corte = pd.cut(x=dados.Renda,
                bins = classes,
                labels = labels,
                include_lowest=True)

Se tentarmos verificar o tipo - através da função type() - da variável corte, podemos ver que é uma pandas.Series.

Agora podemos usar essa Series para criar mais uma coluna no DataFrame principal:

dados["Clase Econômica"] = corte

Agora ele está dessa forma:

    UF    Sexo    Idade    Cor    Anos de Estudo    Renda    Altura    Classe Econômica
0    11     0        23    8       12                800       1.603808    E
1    11     1        23    2       12                1150      1.739790    E
2    11     1        35    8       15                880       1.760444    E
3    11     0        46    2       6                 3500      1.783158    C
4    11     1        47    8       9                 150       1.690631    E

Como temos mais uma coluna com a classe econômica no nosso DataFrame, vamos usar mais uma função do Pandas para fazer a divisão por classes - a pandas.groupby()

Fazemos isso com :

dados.groupby('Classe Econômica')['Renda'].mean()

A função groupby cria novos DataFrames baseados em um argumento, no caso, 'Classe Econômica'.

Nesse caso, eu tirei as médias na mesma linha acessando a coluna renda e tirando a média pela função mean().

O resultado é:

Classe Econômica
E      846.436177
D     2225.361198
C     4724.410186
B    10517.221763
A    25697.662829

Se quiser saber mais sobre a função pandas.groupby(), deixo o aqui o link para a documentação, que só está disponível em inglês.

Espero ter ajudado e bons estudos!