pandas日常技巧

  • 导入文件前边的行有脏数据(如合并单元格标题等),如首行有脏数据,则从第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()

  • 其他

你可能感兴趣的:(pandas)