python生成报表
genReport
git库地址
依赖项
numpy 1.20.3 #矩阵计算 panda 0.3.1 #矩阵计算库 pandas 1.2.4 #数学计算库 PyMySQL 1.0.2 #python的mysql链接 pyparsing 2.4.7 #python的sql翻译 matplotlib 3.4.2 #python做图库 scipy 1.6.3 #python科学计算库,线性回归等。 prettytable 2.1.0 # python-docx python-docx-temple from docxtpl import * from docx import * from docx.shared import Mm, Inches, Pt
- Pandas 清洗空值 - 如果我们要删除包含空字段的行,可以使用 **dropna()** 方法,语法格式如下:`DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)` - 连接(join) - ```python pd.merge(left, right, on='key') ``` - 追加(Append) `df.append(s, ignore_index=True)`1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
## 学习站点
- https://www.numpy.org.cn/
- https://www.pypandas.cn/
- Python数据学科内容 http://victorfengming.gitee.io/course/data_science/md/rumen-content.html
- python word 模板https://github.com/elapouya/python-docx-template
## 笔记
- 从Excel到Python:最常用的36个Pandas函数
- https://aijishu.com/a/1060000000078309
- python dataframe groupby
- https://zhuanlan.zhihu.com/p/101284491
- agg聚合操作
- min 最小值
- max 最大值
- sum 求和
- mean 均值
- median 中位数
- std 标准差
- var 方差
- count 计数
- apply
- `apply`应该是大家的老朋友了,它相比`agg`和`transform`而言更加灵活,能够传入任意自定义的函数,实现复杂的数据操作
- **Pandas**
- https://www.runoob.com/pandas/pandas-tutorial.html
- https://zhuanlan.zhihu.com/p/100064394
- https://www.numpy.org.cn/article/basics/python_numpy_tutorial.html
- Series列数据处理
- Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。`pandas.Series( data, index, dtype, name, copy)`
- DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
- map用法 替换原始数据值
- ```python
#①使用字典进行映射
data["gender"] = data["gender"].map({"男":1, "女":0})
#②使用函数
def gender_map(x):
gender = 1 if x == "男" else 0
return gender
#注意这里传入的是函数名,不带括号
data["gender"] = data["gender"].map(gender_map)轴
- 轴0将作用于每列中的所有行
- 轴1将作用于每行中的所有列
count 统计非空值数量
sum 汇总值
mean 平均值
mad 平均绝对偏差
median 算数中位数
min 最小值
max 最大值
mode 众数:众数是在一组数据中,出现次数最多的数据
abs 绝对值
prod 乘积
std 贝塞尔矫正的样本标准偏差
var 无偏方差
sem 平均值标准误差
skew 样本偏度(第三阶)
kurt 样本峰度(第四阶)
quantile 样本分位数(不同%的值)
cumsum 累加
cumprod 累乘
cummax 累计最大值
cumin 累计最小值
函数应用
不管是为 Pandas 对象应用自定义函数,还是应用第三方函数,都离不开以下三种方法。用哪种方法取决于操作的对象是
DataFrame
,还是Series
;是行、列,还是元素。- 表级函数应用:
pipe()
(opens new window) - 行列级函数应用:
apply()
(opens new window) - 聚合 API:
agg()
(opens new window)与transform()
(opens new window) - 元素级函数应用:
applymap()
(opens new window)
- 表级函数应用:
Pandas与sql比较 https://www.pypandas.cn/docs/getting_started/comparison.html#%E4%B8%8Esql%E6%AF%94%E8%BE%83
Generating Covid-19 Analytics Report PDFS with Python
How to generate Reports with Python automatically
会员报告综合分析
分析报告模板相关
撰写出彩的数据分析报告的5个建议
撰写数据分析报告几乎是每个数据分析师的必备技能,一份数据报告看似简单,但是要想 写出彩却非常难。
完整的报告结构
完整的报告结构是一份规范报告的基础,它能帮助阅读者在优先时间内迅速掌握报告表达 的内容,并正确理解报告结论。
标准的数据分析报告的结构通常包括以下几个部分:
- 封皮和封底。每个公司都有自己的封皮和封底模板,尤其是在大公司中,使用公司统一的封皮和封底页非常重要。
- 摘要页。摘要页是对报告中内容的概述,以便于领导层通过阅读摘要直接了解报告内容而无需要阅读整个报告。事实上,大多数企业领导由于时间和精力有限都只看摘要信息,如果有感兴趣的内容才会看对应报告主体或直接询问分析师。
- 目录页。如果报告内容过多,则需要通过目录告诉阅读者报告包括哪些内容。一般的报告内容不会太多,在3~
20页之内的报告是比较合适的。内容过多会使阅读者丧失耐心,内容过少又往往无法完整表达内容。对于目录页来讲,需要包含标题和页面两个信息,标题一般出现一级标题即可。 - 说明页。说明页是关于报告中数据时间、数据粒度、数据维度、数据定义、数据计算方法和相关模型等内容的特殊说明,目的是增强报告的可理解性,尤其是读者关注的采用什么数据、使用什么方法这些关键信息要讲清楚。
正文页。正文页是报告的核心,通常使用总-分-总的思路撰写,在撰写报告之前一般需要先使用思维导图工具画出撰写思路(markdown-mermaid)。作为日常报告,除了数据陈列外,一定要有数据结论;而对于数据分析和挖掘类报告,不洗紧紧围绕主题撰写,而不要绵绵俱到。
- 附录。如果报告存在外部数据引用、原始数据、数据模型解释等,建议作为附录附在报告最后,而不要都加入报告正文内容中,因为大多数人对于数据细节不太关注。
精致的页面板式
要想做出出彩的报告,只使用默认的Excel、Word或PPT模板可不行。精致的页面板式包括一下元素。
(1)配色 配色是一门学问,这关乎到审美,而审美是因人而异的。配色的意义主要提现在一下几个方面。
- 协调:让版面看起来更赏心悦目。
- 对比:更加明显地突出关键信息。
- 划分:区隔不同的内容主体,使内容块更容易被理解。
- 归属:不同的行业和领域有专门的拥塞,使用特定的衍射更能彰显报告与对象之间的归属关系。 在配色中,尤其需要注意以下几种用法。
- 主色:主色是整个报告中的主要色调,一般主色的选择与报告内容和行业归属有关系的颜色。
- 相近色:相近色与主色“相似”的颜色,但是主要是辅助主色做信息表达,相近色不能“抢”主色的焦点。
- 互补色:互补色与主色“互补”的颜色,它能起到强调、突出和拉开距离的作用,例红与绿、橙与蓝、黄与紫酒店互为补色的关系。但互补色不宜使用过多。
- 无色色系:所谓无色色系指的是没有特定颜色的颜色,这类颜色在色环中是没有的。无色色系包括黑、白、灰3类,这类颜色通常起到辅助设计、颜色修饰或者页面背景色的作用。
(2)留白 留白是中国艺术作品创作中常用的一种手法,极具中国美学特征。留白一词原指书画艺术创作中为使整个作品画面、章法更为协调经纬而有意留下一定的空白,留有想象的空间。在数据分析报告中,留白的意义是使得报告更为美观、特定内容更容易获得焦点。
留白应用到数据分析报告中时,一般用在页面的四周以及不同内容块之间。使用留白时需要注意一下几点:
- 不要大面积的留白,那样会更感觉报告缺乏内容。
- 留白是相当的,例如行间、段落间自然就有缝隙留白,真正的留白要与这些自然间缝相区别。
- 留白不能在左右内容上都有使用,要能突出重点信息。
(3)对称 对称是设计的基本法则,该法则提现在所有页面元素的设计中。基本的对称报告分为垂直和水平两种,对称的使用有以下重要信息点:
- 如果元素过多,那么相同对称格式一般用于具有相同属性特征的对象上,这样能起到区分的作用。
- 水平对称是大家最常关注的部分,但不要忽略垂直对称。
- 对称设计不要靠“眼力”,应该使用工具中的对称样式设计,因为人眼对于距离的把握是不准确的,例如依靠人眼无法对1像素的差异做准备调整。
- 对称可以隔元素提现的,例如四角对称、斜角对称等,这些对称对象之间往往有其他元素。
(4)字体 一般情况下报告默认字体是宋体,但是在报告设计过程中要善于利用多种字体表达不同的信息。汉字(也包含其他语言)有非常多的字体可供使用,不同的字体的特点如下:
字体 | 适用场景 |
---|---|
微软雅黑 | 笔画简洁而舒展,易于阅读,适合完美的中英文搭配 |
楷体 | 在做具有文化感和传统味的场景中常用,也可以作为注释用文字 |
宋体 | 适合大多数场景下的正文内容,尤其是权威、正统的场合下更为适用,大粗体宋体也可以作为标题使用 |
仿宋体 | 适合正文内容,可以用于中小号标题,也适合诗词、古典文献和仿古版画 |
黑体 | 一般用于排各级大、小标题字,封面字及正文中要突出的部分 |
除了选择合适的字体外,还有很多内容需要读者注意:
- 一份报告内尽量不要使用超过3种以上的字体。
- 字体的大小要根据报告的应用场景而定,一般情况下以投影PPT为主的字号要在18以上,普通阅读的正文字号建议在14~16。
- 行间距的设计与排版有关,一般情况下会使用1.3~1.5倍行间距。
- 不要使用过于花哨的字体,虽然看起来很有意思,但是会增加阅读成本。
- 截图与正文的字体一般都是内容的一部分,不要忽视截图中的字体。
- 如果有英文,不要全部使用大写。
- 不同字号的文字做对比更能提现突出和对比作用,尤其是字号差异明显时。
- 文字的信息是否醒目也受背景色的影响,注意文字颜色和背景色要使用互补色。
…………《Python数据分析与数据化运营(第2版)》
场景化:将数据嵌入运营环节之中
“数据驱动”一词是数据工作者为之奋斗的目标,但在很多情况下我们会发现数据“驱不动”业务。导致这会议问题的因素有很多,例如:业务方工作能力、企业数据工作文化、数据工作机制、分析师的推动能力等。都是这些因素中,有一个潜在的因素未呗提及,那就是数据根本不做运营环节之中。
数据怎样才算是在运营环节之中?如果没有数据,那么业务工作将开展不下去,这就是数据在运营环节中作为必要一环的提现。但科协是当前大多数企业都不具备这一特征。所有公司的商业莫阿是和企业基因决定了其未来的趋势,如果数据不是随着商业模式共同建立的,那么必然只能作为辅助类角色。
将数据嵌入运营环节,有以下几点建议:
1)选择核心商业模式所涉及的环节,而非边缘环节。