【python】读取、判断、创建、写入excel表——以上课情况表为例

根据上课情况(Excel表)进行如下操作:

1、统计上课人数

2、列出回答问题前三的学生的姓名学号

3、检测学号是否正常,将不正常学号写入新的excel表中

表如图:

import pandas as pd
import xlsxwriter
df = pd.read_excel('F:\上课情况.xlsx')#导入excel
#统计上课人数
上课=df['是否上课']
a=0
b=0
for n in range(0,7):
  if 上课[n]=='是':
    a=a+1
  else:
    b=b+1              #根据单元格内容判断
print("上课人数:",a)
print("缺课人数:",b)
#列出签到排名前三的同学姓名学号
姓名=df["姓名"]
学号=df["学号"]
回答=df["回答问题"]
回答问题=df['回答问题'].values.tolist()    #转化为列表
回答问题.sort(reverse=True)               #从大到小排序
回答问题=回答问题[:3]                      #取列表前三
回答问题=list(set(回答问题))               #去重
回答问题.sort(reverse=True)               #去重后排序
for n in range(0,7):
  for i in range(0,len(回答问题)):
   if 回答[n]==回答问题[i]:
     print(姓名[n],学号[n])               #输出回答问题前三的同学
#检测学号是否正确(位数是否正确)
for n in range(0,7):
    if len(str(学号[n]))!=8:                                     #判断是否要建立excel表
      workbook = xlsxwriter.Workbook('F:\学号有问题.xlsx')         #创建一个名为 hello.xlsx 赋值给workbook
      worksheet = workbook.add_worksheet()                 #创建一个默认工作簿 赋值给worksheet                                                    
      worksheet.write(0,0,'姓名')                       #使用工作簿在 (0,1) 写入姓名
      worksheet.write(0,1,'学号')                 #使用工作簿在 第(0,1) 写入学号
      break
#将不正确学号以及相应的名字填入新的文件中
c=1
for n in range(0,7):
    if len(str(学号[n]))!=8 :
        worksheet.write(c,0,姓名[n])
        worksheet.write(c,1,学号[n])
        c=c+1
for n in range(0,7):
  if len(str(学号[n]))!=8:  
    workbook.close()

运行结果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值