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

如何使用Python计算列指定值占比并按国家分组聚合统计

Python 实现方案

我们可以用pandas库完成该统计需求,完整实现代码如下:

import pandas as pd

# 构造示例数据表,如果你已经有对应DataFrame可跳过该步骤
data = [
    ["US", "a1", "upload"],
    ["US", "a1", "delete"],
    ["US", "a1", "delete"],
    ["US", "a2", "upload"],
    ["US", "a2", "upload"],
    ["US", "a2", "delete"],
    ["IT", "k2", "upload"],
    ["IT", "k2", "upload"],
    ["IT", "k2", "delete"],
]
df = pd.DataFrame(data, columns=["country", "ID", "type"])

# 第一步:按国家+ID分组,计算每个ID的delete占比
id_level_stats = df.groupby(["country", "ID"])["type"].agg(
    delete_ratio=lambda x: (x == "delete").sum() / len(x)
).reset_index()

# 第二步:按国家分组,统计唯一ID数、所有ID delete占比的平均值
result = id_level_stats.groupby("country").agg(
    ID_cnt=("ID", "nunique"),
    delete_perc=("delete_ratio", lambda x: round(x.mean(), 2))
).reset_index()

# 输出结果
print(result)

运行后输出的result就是你需要的统计结果:

countryID_cntdelete_perc
US20.5
IT10.33

如果不需要强制保留两位小数,把第二步中delete_perc对应的聚合规则lambda x: round(x.mean(), 2)换成'mean'即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:48:00