Estou usando pandas e obtendo dados e usando group by. No entanto, não tenho certeza de como filtrar dados indesejados de serem retornados. Eu só quero a contagem de 1 e não de 0.
print(df.groupby(item)['event'].apply(lambda x: (x==1).sum()).reset_index(name='count'))
hpb count
0 55
1 36
Também usei o seguinte e ele está retornando as mesmas informações para todas as colunas.
print(patients.query("event==1 and hbp==1").groupby('hbp').count())
age cp eject ......
hbp
1 36 36 36
Minha saída desejada está abaixo.
hpb count
1 36
Aqui estão meus dados que estou lendo nos pacientes do dataframe. Estou tentando obter os dados do hbp onde o evento é 1 e o hbp é 1 usando consulta ou grupo por. Atualmente estou recebendo as duas 1
contagens, 0
mas só exibo as contagens de HBP 1. veja a saída desejada acima.
hbp event ..etc
1 1
0 1
1 1
1 1
0 1
Sua solução é possível alterar especificando a coluna depois
groupby
e usandosum
oucount
ousize
, porque processando1
valores:Ou primeiro filtre e depois conte
hbp
os valores porSeries.value_counts
: