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模块
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.结果就是这个样子: