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

如何在pandas DataFrame中分组统计次数并计算百分比占比

实现pandas DataFrame新增指定计算列的方法

直接运行以下代码即可得到符合要求的结果:

import pandas as pd

# 示例数据初始化
df = pd.DataFrame({
    "column A": ["Atlanta", "Atlanta", "New York", "New York","New York"], 
    "column B": ["AT", "AT", "NY", "NY", "AT"]
})

# 1. 新增occurrence_columnA:统计column A各值的出现次数
df['occurrence_columnA'] = df.groupby('column A')['column A'].transform('count')

# 2. 新增occurrence_both_columns:统计column A和column B值组合的出现次数
df['occurrence_both_columns'] = df.groupby(['column A', 'column B'])['column A'].transform('count')

# 3. 新增Ratio:计算百分比占比,如需和示例一致保留两位截断小数可把round参数改为round(2, rounding_mode='trunc')
df['Ratio'] = (df['occurrence_both_columns'] / df['occurrence_columnA'] * 100).round(2).apply(lambda x: f"{x}%")

# 可选:和示例输出对齐,把column A里的New York修改为Newyork
df['column A'] = df['column A'].replace('New York', 'Newyork')

运行后输出结果如下:

column Acolumn Boccurrence_columnAoccurrence_both_columnsRatio
AtlantaAT22100.0%
AtlantaAT22100.0%
NewyorkNY3266.67%
NewyorkNY3266.67%
NewyorkAT3133.33%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:00:01