我正在使用 pandas 并获取数据并使用 group by。但是我不确定如何过滤掉返回的不需要的数据。我只想要 1 的计数,而不是 0 的计数。
print(df.groupby(item)['event'].apply(lambda x: (x==1).sum()).reset_index(name='count'))
hpb count
0 55
1 36
我还使用了以下内容,它为所有列返回相同的信息。
print(patients.query("event==1 and hbp==1").groupby('hbp').count())
age cp eject ......
hbp
1 36 36 36
我想要的输出如下。
hpb count
1 36
这是我正在读入数据框患者的数据。我正在尝试使用查询或分组来获取事件为 1 且 hbp 为 1 的 hbp 数据。目前我正在获取1
和0
计数,但我只显示 hbp 1 计数。请参阅上面所需的输出。
hbp event ..etc
1 1
0 1
1 1
1 1
0 1
您的解决方案可以通过指定列
groupby
并使用sum
orcount
or进行更改size
,因为处理1
值:或者首先过滤,然后
hbp
按以下方式对值进行计数Series.value_counts
: