Como eu faço para dividir esse DataFrame em dois a partir dos dados do Sexo ?
Ex: um df só com as informações referentes ao sexo masculino e outro para o feminino ...
Como eu faço para dividir esse DataFrame em dois a partir dos dados do Sexo ?
Ex: um df só com as informações referentes ao sexo masculino e outro para o feminino ...
Olá, bom dia! Existem algumas formas de fazer isso:
dados_homens = dados.query("Sexo == 0")
dados_mulheres = dados.query("Sexo == 1")
Essa primeira usa o método query dos DataFrames para fazer uma busca, que é passada na forma de uma string.
dados_homens = dados[dados.Sexo == 0]
dados_mulheres = dados[dados.Sexo == 1]
Essa segunda forma usa a sintaxe de seleção dos DataFrames, que usa uma Series booleana para funcionar. Uma Series booleana é um tipo de lista própria da biblioteca Pandas que contém somente valores 0 e 1, que são falso e verdadeiro respectivamente. Então nós passamos essa Series dentro dos colchetes para fazer a seleção, pegando os índices que são verdadeiro (1) e ignorando os índices que são falsos (0).
dados_agrupados_por_sexo = dados.groupby(by='Sexo')
Essa terceira forma não faz a separação dos dados, faz somente um agrupamento de acordo com uma coluna. Esse método é usado para quando queremos aplicar alguma função em cada grupo desses dados, como calcular a média, mediana ou algum outro cálculo:
dados.groupby(by='Sexo').mean() # média de cada coluna para cada sexo
dados.groupby(by='Sexo').median() # mediana de cada coluna para cada sexo
Outra coisa que pode ajudar na hora dessa separação é substituir os valores de 0 e 1 para masculino e feminino:
dados.Sexo.replace({0: "M", 1: "F"}, inplace = True)
Então a divisão ficaria assim:
# Usando seleção
dados_homens = dados[dados.Sexo == "M"]
dados_mulheres = dados[dados.Sexo == "F"]
# Usando query
dados_homens = dados.query("Sexo == 'M'")
dados_mulheres = dados.query("Sexo == 'F'")
Espero ter ajudado!