首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【原创佳作】介绍Pandas实战中一些高端玩法
2
pandas 如何实现 excel 中的汇总行?
3
pandas多级索引的骚操作!
4
40000字 Matplotlib 实操干货,真的全!
5
利用Python搞定女朋友的小情绪~
6
Python 绘制惊艳的瀑布图
7
6种方式创建多层索引
8
Python 进阶指南(编程轻松进阶):三、使用 Black 工具来格式化代码
9
数据科学 IPython 笔记本 9.6 聚合:最小、最大和之间的任何东西
10
精通 Pandas 探索性分析:1~4 全
11
高手系列!数据科学家私藏pandas高阶用法大全 ⛵
12
总结了67个pandas函数,完美解决数据处理,拿来即用!
13
PyAutoGUI,一个Python办公自动化利器!
14
解放双手|利用 PyAutoGUI 快速构建自动化操作脚本
15
Python中内置数据库!SQLite使用指南! ⛵
16
数据分析索引总结(中)Pandas多级索引
17
数据分析索引总结(下)Pandas索引技巧
18
数据分析索引总结(上)Pandas单级索引
19
网友需求系列01-Python-matplotlib定制化刻度(主副)绘制
20
用Python自动生成数据分析报告
21
手把手教你用Python操纵Word自动编写离职报告
22
pandas transform 数据转换的 4 个常用技巧!
23
30段极简Python代码:这些小技巧你都Get了么
24
数据处理遇到麻烦不要慌,5个优雅的Numpy函数助你走出困境
25
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(上)
26
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(下)
27
数据分析之Pandas变形操作总结
28
数据分析之Pandas缺失数据处理
29
数据分析之Pandas合并操作总结
30
数据分析之Pandas分组操作总结
31
学习用Pandas处理分类数据!
32
如何用Pandas处理文本数据?
33
Pandas处理时序数据(初学者必会)!
34
Python高阶函数使用总结!
35
机器学习在金融风控的经验总结!
36
你知道怎么用Pandas绘制带交互的可视化图表吗?
37
6个提升效率的pandas小技巧
38
Python数据分析库pandas高级接口dt和str的使用
39
pandas 拼接 concat 5 个常用技巧!
40
pandas分组8个常用技巧!
41
pandas 文本处理大全
42
pandas 筛选数据的 8 个骚操作
43
pandas 分类数据处理大全(附代码)
44
68 个Python内置函数,你用过几个?
45
太秀了!用 pandas 搞定 24 张 Excel 报表
46
用 Python 的 Template 类生成文件报告
47
码如其人,同学你能写一手漂亮的Python函数吗
48
Python处理图片九宫格,炫酷朋友圈
49
Python排序傻傻分不清?一文看透sorted与sort用法
50
python-docx操作word文件(
清单首页python文章详情

用Python自动生成数据分析报告

很多时候,我们需要做一些重复性的工作,比如说,每个月制作类似的数据分析报告,整个框架是基本固定的,此时,我们可以采用 Python 来自动生成数据分析报告,把更多的时间和精力用在分析上面,而不是调整报告的格式。

python-pptx 是一个能够自动创建和更新 PPT 文件的 Python 库,可以用来自动生成数据分析报告。

下面,我以自己的个人数据为例,用 python-pptx 制作一个简略版的数据分析报告,供你参考。

下面是具体制作的步骤和方法。

首先,如果你还没有安装 python-pptx,那么请在命令行输入:

代码语言:javascript
复制
pip install python-pptx

其次,利用 matplotlib 等绘图工具,生成数据分析报告中用到的图表,统一保存到 pic 文件夹中。

然后,建立一个 PPT 模板文件,预先定义好母版,设置相应的布局版式等,把文件命名为「模板.pptx」。

接下来,在 Jupyter Lab 环境中运行以下代码:

代码语言:javascript
复制
# 导入库
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor

# 模板下载 https://github.com/linjiwx/mp
prs = Presentation('模板.pptx')

# 添加幻灯片首页
slide_layout0 = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout0)

# 设置标题和副标题文本
title = slide.shapes.title
subtitle = slide.placeholders[10]
title.text = '2020年9月林骥的数据分析报告'
subtitle.text = '2020-10-08'

# 添加幻灯片,正文模块,根据实际需求选择布局版式

# *************1. 主要分析结论*****************
slide_layout1 = prs.slide_layouts[1]
slide1 = prs.slides.add_slide(slide_layout1)

# 添加标题
title = slide1.placeholders[10]
title.text = "1. 主要分析结论"

# 添加正文内容
content = slide1.placeholders[11]
ft = content.text_frame
ft.clear()
p = ft.paragraphs[0]
run = p.add_run()
run.text = '(1) 年初制定的运动目标是平均每天走'

# 重点强调的内容
run = p.add_run()
run.text = '10000步'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)

# 继续添加其他内容
run = p.add_run()
run.text = ',9月份的目标完成率为'

# 重点强调的内容
run = p.add_run()
run.text = '108.8%'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)

# 继续添加其他内容
run = p.add_run()
run.text = ''',超额完成任务目标;

(2) 学习的各项指标均有所提升,其中笔记方面的提升最为明显,9月底的笔记评级变成'''

# 重点强调的内容
run = p.add_run()
run.text = 'A+'
font = run.font
font.name = 'Arial'
font.size = Pt(26)
font.color.rgb = RGBColor(0, 88, 159)

# 继续添加其他内容
run = p.add_run()
run.text = '。'

# ***************2. 目标完成情况******************
# 添加幻灯片
slide_layout2 = prs.slide_layouts[3]
slide2 = prs.slides.add_slide(slide_layout2)
# 添加正文模块标题
title= slide2.placeholders[10]
title.text = "2. 目标完成情况"
# 插入图片 https://github.com/linjiwx/mp
img_path='./pic/2. 目标完成情况.jpg'
picture_placeholder = slide2.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述内容
content= slide2.placeholders[12]
content.text = ' '

# ***************3. 关键指标变化******************
# 添加幻灯片
slide_layout3 = prs.slide_layouts[6]
slide3 = prs.slides.add_slide(slide_layout3)
# 添加正文模块标题
title= slide3.placeholders[10]
title.text = "3. 关键指标变化"
# 插入图片对象,主图
img_path='./pic/3. 关键指标变化.jpg'
picture_placeholder = slide3.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述内容
content= slide3.placeholders[12]
content.text = '''与年初相比,
各项指标均有所提升,
其中笔记的提升最多,
9月底的笔记评级变成A+。
'''

# ***************4. 变化原因分析******************
# 添加幻灯片
slide_layout4 = prs.slide_layouts[1]
slide4 = prs.slides.add_slide(slide_layout4)

# 添加正文模块标题
title= slide4.placeholders[10]
title.text = "4. 变化原因分析"

# 添加描述内容
content= slide4.placeholders[11]
content.text = '''
(1) 为了错开上班早高峰的时间,我早上通常在7点钟之前就到了公司,增加了很多学习和写读书笔记的时间;

(2) 在OKR方法的指引下,我年初制定了精细阅读26本书和原创写作60篇文章的目标,用输出倒逼输入。
'''

# *************5. 建议改善措施*****************
slide_layout5 = prs.slide_layouts[1]
slide5 = prs.slides.add_slide(slide_layout5)

# 添加正文模块标题
title= slide5.placeholders[10]
title.text = "5. 建议改善措施"

# 添加内容
content= slide5.placeholders[11]
content.text = '''
(1) 建议继续坚持运动和学习,提升自己的健康水平和能力水平,以饱满的状态投入工作,不断提高工作效率,创造出远大于回报的价值;

(2) 建议加强知识分享,教会别人,比自己动手操作要难得多,但是,分享的过程会让自己收获更多,这是一件值得投入的事。
'''

# ***************6. 封底******************
# 添加幻灯片
slide_layout2 = prs.slide_layouts[3]
slide2 = prs.slides.add_slide(slide_layout2)
# 添加正文模块标题
title= slide2.placeholders[10]
title.text = '6. 感谢您的关注'
# 插入图片对象,主图
img_path='./pic/林骥.png'
picture_placeholder = slide2.placeholders[11]
placeholder_picture = picture_placeholder.insert_picture(img_path)
# 添加描述内容
content= slide2.placeholders[12]
content.text = '用数据化解难题,让分析更加有效。'

prs.save('2020年9月林骥的数据分析报告.pptx')

print("报告已生成,请打开PPT文件查看。")

打开自动生成的 PPT 文件,就可以看到完整的数据分析报告结果。

代码语言:javascript
复制
下一篇
举报
领券