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

如何计算Pandas DataFrame列中各值的出现占比百分比

解决DataFrame中Gender列各值占比计算的问题

嘿,你已经迈出了第一步——拿到各gender的出现次数,接下来转成百分比其实超简单!这里给你几种实用的方案,按需选择:

方法1:基于groupby的计数转换

你已经用df.groupby('gender').size()得到了各分组的计数,只需要将这些计数除以总样本数再乘以100,就能得到百分比:

# 获取各gender的出现次数
gender_counts = df.groupby('gender').size()
# 计算百分比(保留两位小数可选)
gender_percentages = (gender_counts / len(df)) * 100
# 如果需要格式化带%符号
gender_percentages = gender_percentages.round(2).astype(str) + '%'

方法2:用value_counts一步到位

value_counts()是更简洁的方式,它自带normalize=True参数直接返回相对频率,省去手动计算总样本数的步骤:

# 默认降序排列,返回百分比
gender_percentages = df['gender'].value_counts(normalize=True) * 100
# 如果想保持gender的原始顺序(比如M、F、Other的顺序),加上sort=False
gender_percentages = df['gender'].value_counts(normalize=True, sort=False) * 100

方法3:生成带计数和百分比的DataFrame

如果需要保留完整的表格格式(方便后续分析或展示),可以把计数和百分比整合到一个DataFrame里:

# 先获取计数并转成DataFrame
gender_stats = df.groupby('gender').size().reset_index(name='count')
# 添加百分比列
gender_stats['percentage'] = (gender_stats['count'] / len(df)) * 100
# 格式化百分比列(可选)
gender_stats['percentage'] = gender_stats['percentage'].round(2).astype(str) + '%'

这样不管是想要Series格式的占比,还是带明细的DataFrame,都能满足需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:56