gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:22 25 4
gpt4 key购买 nike

我有一个数据框,出于特定原因,我已将所有 NaN 转换为 0。在对 df 进行另一次计算时,我的分组依据是选择一个 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 |
+----------------+----------------+-------------+

我的代码如下所示(导入 excel 文件后)

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

最佳答案

我会在分组之前过滤 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

这里我们只选择方法不等于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

关于python - 如何使用 Pandas 从 Groupby 方法中排除单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35069694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com