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

如何按条件求和生成新DataFrame并计算企业非白人员工占比?

问题解答

你的分组统计方法是否有误?

你使用的e2 = df_ethnicities.groupby(["Company", "Ethnicity"]).agg({"Count": sum}).reset_index()完全没问题,这段代码能准确按「企业+种族」维度汇总员工总数,是后续计算的合理基础。

后续操作步骤

按以下流程即可生成包含企业名称和非白人员工占比的目标DataFrame:

  1. 统计各企业总员工数
    基于e2按企业分组,汇总所有种族的员工数:

    total_staff = e2.groupby("Company")["Count"].sum().reset_index(name="Total_Employees")
    
  2. 统计各企业非白人员工总数
    筛选出非白人员工记录后按企业汇总:

    non_white_staff = e2[e2["Ethnicity"] != "White"].groupby("Company")["Count"].sum().reset_index(name="Non_White_Count")
    
  3. 合并数据并计算占比
    合并总人数与非白人员数,计算占比(处理可能全是白人的企业,填充0值):

    import pandas as pd
    
    final_df = pd.merge(total_staff, non_white_staff, on="Company", how="left")
    final_df["Non_White_Count"] = final_df["Non_White_Count"].fillna(0)
    final_df["Non_White_Ratio"] = (final_df["Non_White_Count"] / final_df["Total_Employees"]) * 100
    # 保留需要的列
    final_df = final_df[["Company", "Non_White_Ratio"]]
    
  4. 绘制柱状图
    用matplotlib快速生成柱状图示例:

    import matplotlib.pyplot as plt
    
    plt.bar(final_df["Company"], final_df["Non_White_Ratio"])
    plt.xlabel("企业名称")
    plt.ylabel("非白人员工占比(%)")
    plt.title("各企业非白人员工占比")
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:23:15