• Python实训-15天-博客汇总表

学以致用,课堂练习:考勤目录中存放的是所有的考勤excel表格,从第1天~第9天,表中关键的信息就是,学生当天看了多久的直播。
要求,利用所学知识,读取每个excel表格,统计出来每个学生,一共看了多久的直播。x小时y分钟,不考虑秒。

1、模块化开发;2、先不考虑特别细节的地方。
思路:1.要统计观看总时长,我需要将每个学生的观看信息提取出来;2.要使用字典dist+list的形式,存储每个学生的观看信息。
围绕以上目的,读取所有文件内容,提取需要的信息。
依次读取每个文件,找“xxx”在哪一行,将该行的第二列数据,取出(统一格式后再运算)即可。对每位学生都重复以上操作,即可。

'''
学以致用,课堂练习:考勤目录中存放的是所有的考勤excel表格,从第1天~第9天,表中关键的信息就是,学生当天看了多久的直播。
要求,利用所学知识,读取每个excel表格,统计出来每个学生,一共看了多久的直播。x小时y分钟,不考虑秒。
'''
import pandas as pd
import osrename = {'aaa': '山水', 'bbb': 'Lee', 'ccc': '琨'};  # 昵称
# 直接拷贝所有的学生姓名
names = ['aaa', 'bbb', 'ccc'];
# print(len(names))  # 73名学生# 列车所有文件
root = r'C:\Users\lwx\Desktop\考勤';
fs = os.listdir(root);
# 得到绝对路径
fs = [os.path.join(root, x) for x in fs];
# print(fs)infos = {};  # 存储每个学生的观看信息,结构为'张三':['3小时24分' ,'2小时13分', ...]# 依次读取文件
for f in fs:df = pd.read_excel(f);  # 得到dataframe# 获取第一列的数据 ,主要就是人名col_names = list(df.iloc[:, 0]);  # 外部要套list# 遍历学生,找到每个学生出现在第几行;根据行号,对应的第二列就是观看信息for name in names:# 判断名字,也判断昵称if name in col_names or (name in rename and rename[name] in col_names):if name in col_names:index = col_names.index(name);  # 按名字找索引else:index = col_names.index(rename[name])  # 按照昵称找索引time = df.iloc[index, 1];  # 得到观看时长# 放入dict中if name in infos:infos[name].append(time);else:infos[name] = [time];# print(infos);  # OK,得到数据
# print(infos['aaa'])# 统计列表总时长(分钟)
def getTotalTime(ts):tt = [];for t in ts:if '时' in t or '分' in t or ':' in t:t = t.replace('小', '').replace('钟', '');  # 将多余的描述去掉# 将冒号替换为"时"和"分"t = t.replace(":", '时', 1).replace(":", '分', 1);tt.append(t);# print(tt)# 继续对tt处理hs = 0;  # 总小时数ms = 0;  # 总分钟数for t in tt:# 先找小时  '1时37分'h = 0;if '时' in t:h = t[:t.index('时')];  # '1't = t[t.index('时') + 1:];  # '37分'm = 0;if '分' in t:m = t[:t.index('分')];  # '37'hs = hs + int(h);ms = ms + int(m);return hs * 60 + ms;# print(getTotalTime(infos['aaa']));
tj = {};
for name, ts in infos.items():  # 字典遍历tj[name] = getTotalTime(ts);
print(tj)# 排序
ls = list(tj.items());
ls.sort(key=lambda x: x[1], reverse=True)
print(ls)

Python实训day10pm【os模块-处理Excel统计学生观看直播时长】相关推荐

  1. Python实训-15天-博客汇总表

    目录 1.课程安排 1.1.课程介绍 1.2.课程目标 2.课件 2.1.课件and录屏 2.2.练习and案例and作业 3.实训博客笔记 第1周-week1 day01 day02 day03 d ...

  2. Python实训day10am【Python中的地址引用、os模块】

    Python实训-15天-博客汇总表 目录 1.Python中的地址引用 2.os模块(操作系统模块) 2.1.os案例1 2.2.os案例2 2.3.os案例3 2.4.os案例4 2.5.os案例 ...

  3. Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】

    Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...

  4. Python实训day09pm【Python处理Excel实际应用】

    Python实训-15天-博客汇总表 目录 1.实训分组 2.练习题 2.1.课堂练习1 2.2.课堂练习2 1.实训分组 4人一组,完成实训大作业和实训报告. 每组只提交一份大作业 和 一份实训报告 ...

  5. Python实训day14pm【Python网络爬虫综合大作业-参考解析】

    Python实训-15天-博客汇总表 题目:天气数据的爬取和统计 大作业题目思路引导:定时爬取每个地级市的实时天气状况.存入excel中.为每个城市生成html展示.历史excel文件以每日为单位归档 ...

  6. Python实训day11pm【大作业简略解析】

    Python实训-15天-博客汇总表 目录 1.课堂笔记 2.群消息 3.代码 3.1.demo1 3.2.demo2 1.课堂笔记 大作业题目思路引导: 题目1:定时爬取每个地级市的实时天气状况.存 ...

  7. Python实训day09am【Pandas、Series、DataFrame数据帧】

    Python实训-15天-博客汇总表 目录 1.Pandas 1.1.安装Pandas库 1.2.两种数据对象 2.一列数据Series 2.1.获取Series与数据个数 2.2.切片-loc-il ...

  8. python实训小队项目总结

    python实训小队项目总结 项目展示: 项目总结: 前端 后端 部署 项目展示: 主界面 注册界面 登陆界面 首页介绍 个人中心介绍 项目总结: 前端 通过自己之前学的bootstrap导入再进行网 ...

  9. python xlwt写入excel_python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

最新文章

  1. Redis Template使用append方法不起作用的解决办法以及序列化/反序列化的解释
  2. springmvc学习笔记(10)-springmvc注解开发之商品改动功能
  3. 武汉众邦银行的数字化升级秘诀:让每个业务⼈员都能自助式分析查询
  4. Cocos数据篇[3.4](4) ——plist文件操作
  5. HALCON示例程序edge_segments.hdev提取连续的边缘段
  6. Java LocalDate类| 带示例的getEra()方法
  7. WPF Visibility的用法
  8. ideal新建springboot工程_MyBatis初级实战之一:Spring Boot集成
  9. matlab神经网络 误差曲线,神经网络如何输出各层训练误差曲线?
  10. Linux用户及用户组设置
  11. java除,小数的问题
  12. 鸡啄米vc++2010系列15(消息对话框)
  13. 用枚举法实现工厂模型
  14. 基于同一主机配置 Oracle 11g Data Guard
  15. postman 定时任务
  16. 六、定语从句和关系代词
  17. 2018.12.15【HDU4622】Reincarnation(后缀自动机SAM)
  18. vue el-table高度 height自适应
  19. edge浏览器显示无法访问此页面?(网络正常版)详细解决措施,亲测有用!
  20. swift 实现iOS手势密码、指纹密码、faceID

热门文章

  1. android studio cmake opencv_Mac下安装及配置OpenCV环境(Xcode)
  2. python绘制概率密度曲线_[python常用图件绘制#04]核密度曲线图(峰值点显示)
  3. php图片添加角标,分享一段html在消息按钮上增加数量角标的实现代码
  4. java切面不需要接口了吗_使用java语言,如何对一个类中的静态方法做切面编程?...
  5. 四十四、Hexo搭建自己的博客
  6. tensorflow处理简单线性回归
  7. 申请补办 CET(纸笔考试)成绩证明的方法
  8. 直播预告 | AAAI 2022论文解读:对称的语义感知的妆容迁移与移除网络
  9. 向预训练进一步:掩码式非自回归模型训练
  10. AI领域人才,做什么工作可以年薪百万?