Boa tarde!
Estou trabalhando com um DataFrame do TSE que conta com inúmeras informações sobre os candidatos. Segue aqui um exemplo fictício:
import pandas as pd
df = pd.DataFrame({'Nome': ['Carlos', 'José', 'Maria', 'Gilberto', 'Fulano', 'Ciclano', 'Beltrano', 'Parrot', 'Falcon', 'Alexa', 'André', 'Melissa', 'Roberto', 'Maria', 'Pedro'],
'Profissão': ['POLICIAL MILITAR', 'MOTORISTA', 'PRESIDENTE', 'POLICIAL CIVIL', 'MILITAR DA RESERVA', 'POLICIAL MILITAR', 'AMBULANTE', 'POLICIAL CIVIL', 'POLICIAL CIVIL', 'MÉDICO', 'MILITAR DA RESERVA', 'CAMINHONEIRO', 'POLICIAL CIVIL', 'MILITAR DA RESERVA', 'POLICIAL CIVIL'],
'Partido': ['A', 'B', 'A', 'C', 'D', 'B', 'A', 'C', 'A', 'B', 'D', 'D', 'C', 'A', 'B']})
Isso retorna o seguinte DataFrame:
Nome Profissão Partido
0 Carlos POLICIAL MILITAR A
1 José MOTORISTA B
2 Maria PRESIDENTE A
3 Gilberto POLICIAL CIVIL C
4 Fulano MILITAR DA RESERVA D
5 Ciclano POLICIAL MILITAR B
6 Beltrano AMBULANTE A
7 Parrot POLICIAL CIVIL C
8 Falcon POLICIAL CIVIL A
9 Alexa MÉDICO B
10 André MILITAR DA RESERVA D
11 Melissa CAMINHONEIRO D
12 Roberto POLICIAL CIVIL C
13 Maria MILITAR DA RESERVA A
14 Pedro POLICIAL CIVIL B
Eu gostaria de saber o numero de profissões dos candidatos por partido. Consegui tranquilamente usando o group.by:
por_partido = df.groupby('Partido')
por_partido['Profissão'].value_counts()
Retornado:
Partido Profissão
A AMBULANTE 1
MILITAR DA RESERVA 1
POLICIAL CIVIL 1
POLICIAL MILITAR 1
PRESIDENTE 1
B MOTORISTA 1
MÉDICO 1
POLICIAL CIVIL 1
POLICIAL MILITAR 1
C POLICIAL CIVIL 3
D MILITAR DA RESERVA 2
CAMINHONEIRO 1
Name: Profissão, dtype: int64
Meu problema é que desejo selecionar apenas algumas profissões e que ele me retornasse a soma por partido. Por exemplo: Quero saber a soma de "POLICIAL CIVIL, POLICIAL MILITAR e MILITAR DA RESERVA' por partido. Quando tento criar um novo DataFrame apenas com essas profissões e então usar o groupby, me retorna erro.
Alguém tem alguma ideia de como posso resolver isso?
PS1: Na minha Base de Dados real, existe mais de uma centena de profissões. PS2: Perdão se a formatação do post não ficou boa, é o primeiro post do tipo que faço.
Obrigado!