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