1
resposta

[Dúvida] Como fazer um boxplot de cada região de uma maneira simples?

Terminei meu boxplot:

sns.boxplot(data = renda_10000,
            x = renda_10000.Renda,
            y = renda_10000.UF).figure.set_size_inches(15,12)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porém, para melhorar minha análise gráfica, decido separar cada estado pelas cinco regiões do IBGE. Logo, dupliquei a coluna de UF e substitui com .map com o nome de cada região do país:

renda_10000['Região'] = renda_10000['Região'].map({'RO': 'Norte', 
     'AC': 'Norte', 'AM': 'Norte',    'RR': 'Norte',    'PA': 'Norte',
     'AP': 'Norte', 'TO': 'Norte', 

     'MA': 'Nordeste', 'PI': 'Nordeste',     'CE': 'Nordeste',    
     'RN': 'Nordeste',    'PB': 'Nordeste',    'PE': 'Nordeste',
     'AL': 'Nordeste',    'SE': 'Nordeste',    'BA': 'Nordeste', 

     'MG': 'Sudeste', 'ES': 'Sudeste',    'RJ': 'Sudeste',    'SP': 'Sudeste',

     'PR': 'Sul',    'SC': 'Sul',    'RS': 'Sul', 

     'MS': 'Centro-oeste',    'MG': 'Centro-oeste', 'GO': 'Centro-oeste',    
     'DF': 'Centro-oeste'})

renda_10000.head()
<ipython-input-204-65f33cfe9f4c>:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  renda_10000['Região'] = renda_10000['Região'].map({'RO': 'Norte',
UFGêneroIdadeCorAnos_de_EstudoRendaAlturaClasseRegião
0ROMasculino23Parda128001.603808ENorte
1ROFeminino23Branca1211501.739790ENorte
2ROFeminino35Parda158801.760444ENorte
3ROMasculino46Branca635001.783158DNorte
4ROFeminino47Parda91501.690631ENorte

Então, resultou em :

sns.boxplot(data = renda_10000,
            x = renda_10000.Renda,
            y = renda_10000.Região).figure.set_size_inches(15,12)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Enfim, eu gostaria de procurar uma meneira melhor de agrupar o estado de cada linha do DataFrame, mas sem precisar duplicar a coluna dos UF, substituir com .map e, principalmente, não repetir a cópia e cola dos nomes da cada região para cada UF (criando as chaves e os valores do dict). Gostaria de uma função que verificasse o valor do UF da linha e atribuísse o valor para a coluna nova de Regiões.

Para contextualizar: renda_10000 = dados.query('Renda <= 10000'). Sendo que dados é o DataFrame original do IBGE. Exclui todos que tinham uma renda maior que R$10.000,00.

1 resposta

Para contextualizar: renda_10000 = dados.query('Renda <= 10000'). Sendo que dados é o DataFrame original do IBGE. Exclui todos que tinham uma renda maior que R$10.000,00.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software