本文梳理了利用Python实现报表自动化的基本步骤,实现结果自动邮件输出,以及数据分析过程中指标的确立等内容。
1 - 利用Python实现报表自动化
1.1 为什么要进行报表自动化
1.1.1 提高工作效率
脚本化,让程序自己去做
1.1.2 减少错误
程序固化,降低错误率
1.2 什么样的报表适合自动化
1.2.1 使用频率
1.2.2 开发时间
1.2.3 需求变更频率
1.2.4 流程是否变种
1.3 如何实现报表自动化
1.3.1 导入数据源
1.3.2 相关指标计算
1.3.3 结果输出
2 - 自动发送电子邮件
2.1 登录邮箱进行授权码设置,在python中利用授权码登录
2.2 编写自动发送邮件的代码
2.2.1 邮件发送相关库导入
import smtplib
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.application import MIMEApplication
2.2.2 发件人邮箱
asender = "xxxxx@163.com"
2.2.3 收件人邮箱
areceiver = "yyyyy@163.com"
2.2.4 抄送人邮箱
acc = "zzzzz@qq.com"
2.2.5 邮件主题
asubject = "自动发送邮件"
2.2.6 发件人地址
from_addr = "xxxxx@163.com"
2.2.7 授权码
password = "******"
2.2.8 邮件设置
msg = MIMEMultipart()
msg['Subject'] = asubject
msg['to'] = areceiver
msg['Cc'] = acc
msg['from'] = "xxxxx@163.com"
2.2.9 邮件正文
body = "text"
2.2.10 添加邮件正文
msg.attach(MIMEText(body,'plain','utf-8'))
2.2.11 添加附件
xlsxpart = MIMEApplication(open('text.xlsx','rb').read())
xlsxpart.add_header('Content-Disposition','attachment',filename = 'text.xlsx')
msg.attach(xlsxpart)
2.2.12 设置邮箱服务器地址及端口
smtp_server = "http://smtp.163.com"
server = smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)
2.2.13 登录邮箱
server.login(from_addr,password)
2.2.14 发送邮件
server.sendmail(from_addr,areceiver.split(',')+acc.split(','), msg.as_string())
2.2.15 断开服务器连接
server.quit()
3 - 连锁超市数据分析
3.1 导入数据源
pd.read_xlsx()
pd.read_csv()
3.2 畅销商品类别统计
data.groupby()
3.3 畅销商品统计
pd.pivot_table()
3.4 不同门店销售额占比
3.5 哪些时段是客流高峰期
4 - 银行数据分析
4.1 导入数据源
pd.read_xlsx()
pd.read_csv()
4.2 是不是收入越高的人坏账率越低
4.3 年龄和坏账率有什么关系
4.4 家庭人口数量和坏账率有什么关系