列中的Groupby,条件为返回布尔值?

2024-05-16 21:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据框

     equipment      value      loc
0       ac1         43.2       acs_blg
1       ac2         23.1       acs_blg
2       ac3         0.0        acs_blg
3       ac4         44.4       acs_blg
4       kz1         12.1       qet_blg
5       kz2         87.2       qet_blg
6       kz3         65.3       qet_blg
7       yy1         0.0        cna_blg
8       uu1         55.3       ppp_blg
9       uu2         0.0        ppp_blg

如果loc的一个设备的值为0,那么我应该得到一个布尔值false,否则如果所有设备的值都大于0,那么它应该返回true。我很确定groupby需要用于对loc进行分组

最终结果

     loc        boolean
0    acs_blg    false
1    qet_blg    true
2    cna_blg    false
3    ppp_blg    false

Tags: 数据falsetruevaluelocpppequipmentacs
1条回答
网友
1楼 · 发布于 2024-05-16 21:15:41

您可以在此处将^{}^{}一起使用

df.groupby('loc')['value'].all() # Thanks to YOBEN_S for pointing this.
#df.groupby('loc')['value'].apply(pd.Series.all)

loc
acs_blg    False
cna_blg    False
ppp_blg    False
qet_blg     True
Name: value, dtype: bool

将groupby的顺序集sort参数保留为False

df.groupby('loc',sort=False)['value'].all()

loc
acs_blg    False
qet_blg     True
cna_blg    False
ppp_blg    False
Name: value, dtype: bool

相关问题 更多 >