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

如何在Pandas中计算DevTool各分类的整体平均值

Pandas计算DevTool分类的系统平均计数

原始数据

# 初始化数据
data = [['A','Excel','1'], ['A','Word_soft','0'],['B','Excel','1'],['B','Word','1'],['C','Word','1'],['C','Word_soft','0'],['D','Java2','1'],['D','Java','1'],['E','PPT','0'], ['E','Word_soft','0']]
  
# 创建DataFrame
df = pd.DataFrame(data, columns=['System','App','DevTool'])

当前已执行的分组代码

df.groupby(['System','DevTool'])['DevTool'].count()

需求说明

需要针对DevTool的两类值(1和0)分别计算平均计数:

  • DevTool=1的平均值:所有包含1类DevTool的系统中,该类计数的总和 ÷ 拥有1类DevTool的系统数量,计算结果为1.5
  • DevTool=0的平均值:所有包含0类DevTool的系统中,该类计数的总和 ÷ 拥有0类DevTool的系统数量,计算结果约为1.33

解决方案

可以通过两次分组实现需求:

分步实现

  1. 先按System和DevTool分组,计算每个系统对应分类的App数量,重置索引得到结构化DataFrame:
count_df = df.groupby(['System', 'DevTool'])['DevTool'].count().reset_index(name='Count')
  1. 再按DevTool分组,对Count列取平均值:
result = count_df.groupby('DevTool')['Count'].mean()
print(result)

合并成一行代码

result = df.groupby(['System', 'DevTool'])['DevTool'].count().groupby('DevTool').mean()

输出结果

DevTool
0    1.333333
1    1.500000
Name: Count, dtype: float64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:43:22