模拟 数据(连这数据我都模拟出来了)
signup.csv
employee_id,name,sex,department,item_id NC001,liming,f,functional,N100 NC002,zhangsan,f,functional,N101 NC003,sunli,m,functional,N103 NC004,lina,m,functional,N103 NC005,wanger,m,technology,N101 NC006,shenteng,m,education,N104 NC007,mali,f,operation,N102 NC008,reba,f,technology,N100 NC009,ailun,m,education,N101 NC010,changyuan,f,technology,N102 NC011,geyou,m,operation,N102 NC012,cls,f,technology,N102 NC013,zhangwei,m,education,N102 NC014,liufang,m,education,N102 NC015,wanglei,f,education,N104 NC016,zhangli,f,education,N101 NC017,wangyan,f,operation,N103 NC018,liangfeifan,f,operation,N103
items.csv
item_id,item_name,location N100,athletics,area01 N101,longJump,area02 N102,highJump,area03 N103,javelin,area04 N104,pingPong,area05 N105,relayRace,area06
实现代码
import pandas as pd signup = pd.read_csv("signup.csv") items = pd.read_csv("items.csv") df_all = pd.merge( signup, items, how="left", left_on=signup["item_id"], right_on=items["item_id"] ) print( pd.pivot_table( df_all, index=["sex", "department"], columns=["item_name"], values=["employee_id"], aggfunc="count", fill_value=0, ) )