python自动生成报告_利用python制作报告自动化生成

原标题:利用python制作报告自动化生成

由于工作的关系,平常的工作内容接触数据比较多,处理起来也比较繁琐,尤其是清理数据,重复性比较高。面对着大量的数据关系,理清它确实是需要花费点时间。

恰好最近管理层对数据关注度提升了,需要我们每周提供一份报表,报表自动化我一直都想在做的,但是代码一直在摸索中,所以突破不了。本篇也是对报表自动化的前半部分做个详细的讲解,包括数据读取、拆解、透视等。

来,先看我们其中一份数据是这样子的

我需要从这个数据里知道它的类别和总计数据,之后,我会添加数据的趋势

首先,我们先把需要用到的库导进去,如果没有,可以选安装,也非常简单:pip install XX

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

把库导进去后,找到准备好的数据文件路径,就可以开始把它读出来了。读取数据用了pandas里的内置函数pd.read_excel(),接下来我们用一下刚才那个文件。

chanpin = pd.read_excel(r"E:\深圳大区\报表源数据\产品类.xlsx",usecols=[2,3,4,7,8,9,10,11])

后面的usecols是用来选你需要的列的数据,选中了哪一列,就是读取了哪一列的数据,比如,第6列不重要,那我就不要放在上面了。

用几个方式查看读取的数据,

chanpin.shape #这个函数主要是了解数据的多少列和行

输出:

(2002, 7)

查一下各行列名字段的总计数据

chanpin.info()#这个主要是了解读取的数据的基本情况,包括一些列头、数据类型及行数据等

输出:

RangeIndex: 2002 entries, 0 to 2001

Data columns (total 6 columns):

3级部门 2002 non-null object

4级部门 2002 non-null object

5级部门 2002 non-null object

产品C 2002 non-null int64

产品D 2002 non-null int64

产品E 2002 non-null int64

dtypes: int64(3), object(3)

memory usage: 93.9+ KB

最后,再看一下具体的前面几行的数据

chanpin.head()这个就可以读取具体的数据了

把数据读取出来后,查看数据基本上是用了上面的3个函数;

我们来把表拆开,chanpin1和chanpin2

chanpin1=chanpin[["3级部门","产品B","产品E"]]

chanpin1.head()

输出

3级部门产品B产品E0西丽区2.001西丽区0.002西丽区2.003西丽区2.034西丽区2.00

chanpin2=chanpin[["3级部门","产品C","产品D"]]

chanpin2.head()

输出:

3级部门产品C产品D0西丽区001西丽区002西丽区203西丽区204西丽区00

这样就赋予了两个新表;

接下来,给chanpin2插入一列数据,就是把产品C和产品D加起来,新建了一列数据;

chanpin2.insert(1,"CD的和",chanpin2["产品C"]+chanpin2["产品D"])

chanpin2.head()

这里用的了一个函数insert。

应用方法就是,你想插在那里,就在第一个值那里填序号就可以了,第二个值是你新建的列的命名,第三个值是一个公式,在这里的比较简单,就是产品C和产品D的和;

最后看输出:

3级部门CD的和产品C产品D0西丽区0001西丽区0002西丽区2203西丽区2204西丽区000

最后对原本做一个透视,在平常的表格处理的过程中运用到最多的就是透视表:

chanpin3 = chanpin[["3级部门","产品E","日期"]]

pd.pivot_table(chanpin3,values="产品E",columns="日期",index="3级部门",aggfunc="sum")

输出结果:

日期32周3级部门

会展湾区84前海湾区189前海自贸区56华侨城区80大营销部0宝城区62西丽区13

有了这一列数据,我们就可以做图表了。下篇,我们继续。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值