You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多条件分组计数问题:筛选指定TypeT后按SourceLoc和DestLoc统计

问题与解决方法

原始数据

原始DataFrame tran 如下:

SourceLoc DestLoc        SourceEq  DestEq   TypeT        
Loc1         Loc1           Eq1      Eq2    Make
Loc1         Loc2           Eq1      Eq1    Transfer
Loc1         Loc3           Eq2      Eq2    Transfer
Vend         Loc2           Eq1      Eq1    Buy
Loc2         Loc3           Eq1      Eq2    MakeTransfer
Loc2         Loc3           Eq2      Eq2    Transfer

需求

  1. 仅统计TypeT字段为Transfer或MakeTransfer的行;
  2. 按SourceLoc和DestLoc分组,统计每组的行数,最终得到包含count列的新DataFrame。

现有问题

当前代码未添加筛选条件,直接分组统计了所有行:

tran=tran.groupby(['SourceLoc','DestLoc']).size().reset_index().rename(columns={0:'count'})

修正后的代码

只需在分组前添加筛选逻辑,用布尔索引过滤符合条件的行即可:

# 先筛选TypeT符合要求的行,再分组统计
tran = tran[tran['TypeT'].isin(['Transfer', 'MakeTransfer'])].groupby(['SourceLoc','DestLoc']).size().reset_index(name='count')

说明:

  • tran['TypeT'].isin(['Transfer', 'MakeTransfer']) 生成布尔索引,筛选出TypeT为指定值的行;
  • 使用reset_index(name='count')可以直接将统计结果的列命名为count,比原代码的rename更简洁。

预期结果

执行修正后的代码后,得到的DataFrame如下:

SourceLoc     DestLoc  count
Loc1          Loc2       1
Loc1          Loc3       1
Loc2          Loc3       2

内容的提问来源于stack exchange,提问作者Toly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:43:16