Python实战:利用Pandas自动化统计单词打卡数据
本文介绍如何使用Python结合Pandas库,自动化处理QQ群相册中的单词打卡数据。通过手动复制相册内容至文本文件,利用正则表达式提取用户昵称,并自动在Excel打卡表中标记“√”。文章详细讲解了文件路径配置、日期格式转换及代码运行步骤,旨在解决因QQ安全机制导致无法直接爬虫获取数据的痛点,提供一套高效的人工辅助+代码自动化的解决方案。
前言
注意事项:由于整个流程依赖代码进行自动化统计,因此每一步操作都至关重要。任何步骤的疏忽或错误都可能导致程序运行报错或统计结果不准确。
操作步骤
第一步:将在线编辑文档导入本地环境。

为了确保代码能够顺利处理数据,需要将导出的Excel表格统一放置在D盘的根目录下。如果不确定具体路径,可以查看文件属性,其路径格式应类似于D盘根目录下的直接访问路径。


第二步:打开Excel表格,将需要统计的那一天的日期列标题修改为中文名称。这一步非常关键,因为程序使用中文列名进行定位,如果保持数字索引格式,代码将无法正确识别并定位数据,导致无法执行。

第三步:鉴于QQ平台的安全防范机制较为严格,常规的爬虫工具和抓包软件难以直接获取其内部信息,因此我们采用最基础且有效的方法来获取数据。具体来说,就是利用电脑打开“百日单词打卡”群的相册页面。

在相册页面中,向下滚动滚轮以加载该统计日期下的所有上传记录。加载完成后,使用键盘快捷键CTRL+A全选所有文本内容,接着按CTRL+C进行复制。

第四步:在D盘根目录下新建一个名为“百日.txt”的文本文件,并将刚才从QQ相册复制粘贴的内容保存进该文件中。


第五步:运行Python代码。程序会自动识别所有上传过背单词图片的用户,并在Excel表格中对应位置打上“√”。尽管自动化程度较高,但为了防止有人通过非标准格式蒙混过关,建议再次浏览相册进行人工核对。如果发现不合格的打卡记录,需手动在Excel中去除对应的“√”。通常情况下,这种情况属于极少数。
第六步:为了保持Excel表格格式的一致性,在编辑完成后,需将之前改为中文的日期列标题重新改回“4.24”这种数字格式,以便后续查看或归档。
第七步:将统计完成并确认无误的Excel表格重新上传至指定位置。
第八步:以下是实现上述功能的源代码。
# -*-coding = utf-8 -*-
# @Time:2021/4/24/10:40
# @Author:seven
# @File:自填.py
# @Software:PyCharm
import pandas as pd
import re
day=input("请输入你要统计的日期(例:4.23):")
DAY=input("请输入的更改后的列名(例:四月二十三日):")
findlink=re.compile("赞我也说一句.*?([\u4e00-\u9fa5]{3})2021-.*? 上传 1 个影像到相册 "+day)
with open("D:/百日.txt","r",encoding="utf-8") as fd:
a=fd.readlines()
w=''
for i in a:
i=i.strip()
w+=i
names=re.findall(findlink,w)
path="D:/百日行动派之单词打卡统计表.xlsx"
df=pd.read_excel(path,engine="openpyxl")
name=df.loc[0:,"姓名"]
day=df.loc[0:,DAY]
days=[]
for i in day:
days.append(i)
namelist=[]
for i in name:
namelist.append(i)
list=[]
for i in names:
try:
n=namelist.index(i)
list.append(n)
except:
print(i)
for i in list:
days[i]="√"
df.loc[0:,"四月二十四日"]=days
df.to_excel(path)
w=input("以上同学因备注格式不符未能自动统计,请自行统计")
第九步:如果你已安装Python环境,可以打开编译器导入相关库后直接运行代码。若未安装Python,也可以使用文中提供的封装后的可执行程序。
至此,关于Python实战之单词打卡统计的介绍已结束。如需了解更多相关python单词打卡统计内容,请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













