比较GroupBy中的值并计算匹配的行

托尼·马修(Tony Mathew)

这是我数据框中的示例行:

{
"sessionId" : "454ec8b8-7f00-40b2-901c-724c5d9f5a91",
"useCaseId" : "3652b5d7-55b8-4bee-82b6-ab32d5543352",
"timestamp" : "1559403699899",
"endFlow" : "true"
}  

并且有类似这样的行,具有类似/不同的'sessionId','useCaseId'和'endFlow'值。我按“ sessionId”和“ useCaseId”将其分组,如下所示:

groupby_session_usecase = seperate_dates_df.groupby(['sessionId','useCaseId'])  

在“ groupby_session_usecase”的组中,我想查找是否有任何行的“ endFlow”值为“ true”。我尝试了以下方法:

'true' in groupby_session_usecase['endFlow']  

但是,即使存在等于“ true”的“ endFlow”值,上述行也始终返回“ False”

检查“ groupby_session_usecase”中的组中是否有“ endFlow”值等于“ true”的行的正确方法是什么?

cs95

OP写道:

“我必须基于'sessionId'和'useCaseId'对'endFlow = true'进行计数。知道如何实现此要求吗?”

是的,您要做的就是首先比较各行,然后使用将结果分组SeriesGroupBy.sum()

(df['endFlow'] == "true").groupby([df['session'], df['useCaseId']]).sum()

或者,您可以将比较分配回df,然后您的分组会变得稍微简单一些:

(df.assign(msk=df['endFlow'].eq('true'))
   .groupby(['session', 'useCaseId'])['msk']
   .sum())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章