日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2024/9/30 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python实训day10pm【os模块-处理Excel统计学生观看直播时长】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 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) 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Python实训day10pm【os模块-处理Excel统计学生观看直播时长】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。