- 导入文件前边的行有脏数据(如合并单元格标题等),如首行有脏数据,则从第1(N)行开始读取数据:
data=pd.read_excel(kaoqinpath,header=1)
- 透视表对不同的列实现不同的计算,注意aggfunc用中括号:
df=pd.pivot_table(data,index=['姓名','日期'],values=['上班打卡','下班打卡'],aggfunc={'上班打卡':min,'下班打卡':max})
aggfunc={'上班打卡':min,'下班打卡':{max,'count'}}
- 透视表做占比
diyu_ts=df.pivot_table(index='省份截取',values='教师id',aggfunc='count',margins=True,margins_name='总计')
diyu_ts['占比']=np.round(diyu_ts['教师id']/diyu_ts.loc['总计','教师id'],2)
- 透视表结果放入一个excel,并调整占比格式为百分比
writer=pd.ExcelWriter(pathstart+'教师档案分析.xlsx')
xueli_ts.to_excel(writer,sheet_name='学历')
xingbie_ts.to_excel(writer,sheet_name='性别')
nianling_ts.to_excel(writer,sheet_name='年龄')
quanjianzhi_ts.to_excel(writer,sheet_name='全兼职')
kaifang_ts.to_excel(writer,sheet_name='开放状态')
diyu_ts.to_excel(writer,sheet_name='省份')
formatobj=writer.book.add_format({'num_format':'0.00%'})
for sheet in writer.sheets:
writer.book.sheetnames[sheet].set_column('C:C',cell_format=formatobj)
writer.save()
- 其他