使用pandas处理Excel的数据
pandas怎么读取excel,我们已经分享了,不太熟悉的,可以参照小鱼的这篇文章 pandas 5行代码实现对Excel的读取!
那么接下来,我们要做的就是对excel表中的数据,某一个负责人负责的数据进行统计。
1.先来看一下excel表的内容:
数据统计表.xlsx
2.我们用代码实现,对 “张三”,"李四 "负责信息的统计
# -*- coding:utf-8 -*- """ @ auth : carl_DJ @ time : 2020-8-19 """ import pandas as pd import os from send_email import send_email #导入send_email #定义数据文件的地址 ,这里写两种 #一种:手动输入文件地址 excel_path = input(f'请输入文件地址:') #另一种:直接读取文件地址 #excel_path = '../data/数据统计表.xlsx' #读入 data = pd.read_excel(excel_path) #定义一个names列表,可以统计多个负责人 names = { '陈文','需要发送的邮箱地址', '王杰','需要发送的邮箱地址' } #文件夹名字 dirname = 'exceldir' #如果没有文件夹,则自动创建 if not os.path.exists(dirname): os.makedirs(dirname) #循环读取excel表中的数据 for name,email in names.items(): #获取负责人的信息 df = data.loc[data['负责人']==name] #保存路径及文件名 filepath = os.path.join(dirname,f'{name}.xlsx') #写入数据 writer = pd.ExcelWriter(filepath) #sheet1 是数据写到excel表的sheet1页 df.to_excel(writer,'sheet1') #保存数据 writer.save() if email: send_email(name,email,filepath)
3.运行的结果:
3.1生成的文件夹
3.2生成的文件数据
yagmail实现邮件自动发送
使用yagmail实现邮件的发送
同样,在使用之前,需要安装yagmail模块
1.cmd窗口使用pip安装
pip install yagmail
安装完成,就可以使用了!
我们来编写send_emial 的代码
2.send_email.py
# -*- coding:utf-8 -*- """ @ auth : carl_DJ @ time : 2020-8-19 """ import yagmail #定义send_email方法 def send_email(name,send_to,filepath): #定义邮件发送的文本内容,以及附件 contents = [ f'{name},你好,数据统计信息已经整理完成,已发送,请查收!', filepath ] #定义SMTP邮件的基本信息 yag = yagmail.SMTP( user = 'carl_DJ@xxx.com', password = 'password', host = 'smtp.host' ) yag.send(to = send_to,subject = '数据统计汇报',contents = contents)
3.结果就是这个样子: