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

Como dividir um DataFrame ?

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 ...

Dados do curso de estatistica com python

1 resposta
solução!

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!