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

CSV数据处理:按性别统计录用占比及DataFrame筛选修改问题

计算男女录用/未录用百分比的实现方法

要实现你的统计需求,你可以把原筛选代码里的Salary、Age、JOB条件替换成Gender和Status的组合条件,再通过计数和总人数的比值计算百分比。以下是两种具体实现方式:

方法一:分步筛选计算

先分别筛选出四个分组的记录,再计算每组占总人数的百分比:

# 筛选对应分组的记录
male_offered = dataFrame.loc[(dataFrame['Gender'] == 'M') & (dataFrame['Status'] == 'Offered')]
male_not_offered = dataFrame.loc[(dataFrame['Gender'] == 'M') & (dataFrame['Status'] == 'Not offered')]
female_offered = dataFrame.loc[(dataFrame['Gender'] == 'F') & (dataFrame['Status'] == 'Offered')]
female_not_offered = dataFrame.loc[(dataFrame['Gender'] == 'F') & (dataFrame['Status'] == 'Not offered')]

# 计算总人数
total_count = len(dataFrame)

# 计算各分组百分比(保留两位小数)
male_offered_pct = round((len(male_offered) / total_count) * 100, 2)
male_not_offered_pct = round((len(male_not_offered) / total_count) * 100, 2)
female_offered_pct = round((len(female_offered) / total_count) * 100, 2)
female_not_offered_pct = round((len(female_not_offered) / total_count) * 100, 2)

# 输出结果
print(f"男性被录用: {male_offered_pct}%")
print(f"男性未被录用: {male_not_offered_pct}%")
print(f"女性被录用: {female_offered_pct}%")
print(f"女性未被录用: {female_not_offered_pct}%")

方法二:用groupby高效统计

如果不想多次重复筛选,可以用pandas的groupby方法一次性完成分组计数和百分比计算,代码更简洁:

# 按性别和录用状态分组,统计每组数量
grouped_stats = dataFrame.groupby(['Gender', 'Status']).size().reset_index(name='count')

# 计算总人数
total_count = len(dataFrame)

# 添加百分比列
grouped_stats['percentage(%)'] = round((grouped_stats['count'] / total_count) * 100, 2)

# 展示结果
display(grouped_stats)

关键说明

原代码里的(dataFrame['Salary']>=100000) & (dataFrame['Age']< 40) & ...是多条件逻辑与筛选,现在替换成(dataFrame['Gender'] == 'M') & (dataFrame['Status'] == 'Offered')这类条件,就能精准定位到你需要统计的分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:54:19