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

使用Pandas在DataFrame中多条件下按团队计算Zone 6占比

计算每个团队的Zone 6占比实现方案

假设你的DataFrame包含Team(团队标识列)和Zone(区域列)核心字段,以下是两种高效实现方式:

方法一:分组自定义计算

通过groupby按团队分组,统计每组内Zone为6的记录数占组内总记录数的比例:

import pandas as pd

# 替换为你的DataFrame名称或读取逻辑
df = pd.read_csv("your_data_source.csv")

# 计算Zone 6占比
zone6_ratio = df.groupby('Team').apply(
    lambda group: (group['Zone'] == 6).sum() / len(group)
).reset_index(name='Zone6_Ratio')

# 输出结果,如需百分比格式可乘以100
print(zone6_ratio)

方法二:交叉表归一化计算

利用crosstab生成团队与Zone的交叉计数表,再按行归一化直接得到占比:

import pandas as pd

df = pd.read_csv("your_data_source.csv")

# 按团队分组,计算各Zone的占比(行维度归一化)
zone_ratio_table = pd.crosstab(df['Team'], df['Zone'], normalize='index')
# 提取Zone 6的占比列并重命名
zone6_ratio = zone_ratio_table[[6]].rename(columns={6: 'Zone6_Ratio'})

print(zone6_ratio)

补充说明

  • 两种方法最终都会生成包含Team和Zone6_Ratio的结果表,Zone6_Ratio为0-1的小数,如需百分比格式可执行zone6_ratio['Zone6_Ratio'] = zone6_ratio['Zone6_Ratio'] * 100
  • 如果需要先筛选特定数据,可在分组前通过df[df['过滤列'] == 筛选条件]完成数据过滤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:20:56