如何使用 Pandas 从 Groupby 方法中排除单个值

Dat*_*oob 5 python pandas

我有一个数据框,出于特定原因,我已将所有 NaN 转换为 0。在对 df 进行另一次计算时,我的 group by 选择了一个 0 并将其作为执行计数的值。知道如何让python和pandas排除0值吗?在这种情况下,0 代表数据中的一行。有没有办法从 groupby 中排除所有 0?

我的 groupby 看起来像这样

  +----------------+----------------+-------------+
  | Team           | Method         |  Count      |
  +----------------+----------------+-------------+
  | Team 1         | Automated      |           1 |
  | Team 1         | Manual         |          14 |
  | Team 2         | Automated      |           5 |
  | Team 2         | Hybrid         |           1 |
  | Team 2         | Manual         |          25 |
  | Team 4         | 0              |           1 |
  | Team 4         | Automated      |           1 |
  | Team 4         | Hybrid         |          13 |
  +----------------+----------------+-------------+
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的(导入excel文件后)

  df = df1.filnna(0)
  a = df[['Team', 'Method']]
  b = a.groupby(['Team', 'Method']).agg({'Method' : 'count'}
Run Code Online (Sandbox Code Playgroud)

EdC*_*ica 4

我会在分组之前过滤 df:

In [8]:
a = df.loc[df['Method'] !=0, ['Team', 'Method']]
b = a.groupby(['Team', 'Method']).agg({'Method' : 'count'})
b
Out[8]:
                Method
Team Method           
1    Automated       1
     Manual          1
2    Automated       1
     Hybrid          1
     Manual          1
4    Automated       1
     Hybrid          1
Run Code Online (Sandbox Code Playgroud)

这里我们只选择方法不等于的行0

与不过滤的情况进行比较:

In [9]:
a = df[['Team', 'Method']]
b = a.groupby(['Team', 'Method']).agg({'Method' : 'count'})
b

Out[9]:
                Method
Team Method           
1    Automated       1
     Manual          1
2    Automated       1
     Hybrid          1
     Manual          1
4    0               1
     Automated       1
     Hybrid          1
Run Code Online (Sandbox Code Playgroud)