python循环统计时间_python编程:统计每个学生一段时间内的打卡次数

举例说明:假设有一个班,在班级群里安排了阅读打卡任务,一段时间之后,老师要统计每个学生一段时间内的打卡次数(每个学生每天只能打一次卡)。

导出后的数据格式是EXCEL,原始的EXCEL表格是这样的,按日期排列的每天参与阅读打卡的学生数据:

6fb1508973424c69d7b337833551b2e3.png

使用jupyter notebook编程解决问题,输出结果如下:

处理过程:输入数据-->数据预处理-->数据计算-->测试结果-->输出结果

5ce6299a40405b0e04c70a9f1ee2e9a9.png

如果没有弄懂pandas里面的一些功能极强的库的使用方法,那后果可能就惨了,就需要用python比较原始的办法去解决了,如下:

e16a1818de8a168636caa41129e45680.png

python完整代码如下:

import pandas as pdimport numpy as npdf = pd.read_excel("3.13阅读打卡(1).xlsx",sheet_name=0,engine="openpyxl")# 数量规范化处理df.replace("爸爸","",regex=True,inplace=True)df.replace("妈妈","",regex=True,inplace=True)df.replace("[0-9.]","",regex=True,inplace=True)df = df.apply(pd.value_counts)df2 = df.count(axis=1) # 按行统计非NaN个数df.insert(0,"打卡次数",df2)df.fillna(0,inplace=True)df# df.to_excel("打卡统计.xlsx")

刚开始的时候不了解pandas.apply()函数用法,用了最原始的办法。其实完全可以人工把EXCEL表格中的多列合并成一列后再统计,这样也是简单。也可以用set(集合)去重的办法解决。但是为了不改变EXCEL文件总体结构的情况下尽量实现自动化,就开始了大量的学习。所以说,不动手,不实践,是找不到好的办法的。实践是检验真理的唯一标准。

以文不对之处还请批评指正,谢谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值