作为曾经的“表哥”,最近在学习python, 想尽量用浅显易懂的语言,结合日常office工作中的一些常用操作,来讲一讲如何使用python提升工作效率,以帮助有需求的officer们。

文章将持续更新。

一、如何用python读、写excel表格的数据

1、需要用到的模块(别人写好的软件)

如果只写一张sheet页,那么我们只需用到一个模块,它叫pandas。

如果要写多个sheet页,那么还要用到另一个模块,openpyxl。

我们一步步来,今天只用到pandas

2、准备工作:

先弄一个有数据的Excel文件,我们假设它的名字叫的"test.xlsx",里面有一个sheet页,叫"sheet1"

3、扩展python的能力:

在python生态环境中,有非常多的人在为它开发各种各样的“软件”, 以扩展python的能力,在使用它们之前,我们要引入它,并且最好给引入的能力取个名字,以方便你在后面使用它。

下面这句话就是python中引入软件模块的常用格式,当然它还有许多变种,我们先讲最简单的一种:

import pandas as pd

“pandas"是python生态中十分重要的一个软件模块,只要是从事数据分析工作,没法离开它。“pd” 就是你给引入pandas后,你后面编程“调用”它的能力时所取的名字,以后你一喊它,它就会乖乖地听你的话。

4、读取excel表格中的数据:

下面我们用一句话读取"test.xlsx"文件中"sheet1"页中的数据表,并且把它有序地存放在计算机内存中某个地方,你可以理解这个地方是按pandas软件规划好的一个格子间(pandas开发人员把它叫做Dataframe),它把读取进来的数据按格子一个个地给塞进去,方便你取用。

df = pd.read_excel("d:\\data\\test1.xlsx")

为了方便讲解,我随便做了一个最简单的费用报销登记表格,如下:

在电脑上运行上述命令后,"df" 这个计算机的“格子间”里,就存放了这张表里的所有数据,像下面这个样子(注:你不需要打开这个excel文件就可以读取里面的数据)

你可以随时查看读取进来的数据,敲一个"df",把它召唤出来就行。

如果要查看报销金额的最大值,这样做:

df["报销金额"].max()

如果想知道是谁报销了这么大的金额呢?这样做:

df["姓名"][df["报销金额"]==df["报销金额"].max()

如果要汇总所有的报销费用,这样做:

有没有发现一个问题呢?,汇总出来的数似乎和excel表格中的数据实际加总值不太一样,小数点后多了很多位,这是因为计算机把读进来的带小数位的数全转换成了“浮点”类型,而浮点数在运算时,由于计算机本身的进制转换的原因,导致了极微小的偏差,但这不影响整体的数据应用。

另外,默认情况下,pandas在读取数据后,会自动给加一列序号,这是它的"索引",就相当于格子间的编号,你可以很方便地用它来存取数据,当然,你也可以不用它这个自动的索引,方法我们后面再讲。

下面,我们给这个表格加一列数据,比如“接单人”,先简单一点,假设全部都是“吴MM”签收的报销单,这样做:

df["接单人"] = "吴MM"

然后我们再把它们全部召唤出来,集合排队报下数:

5、把处理好的数据写入excel表格:

辛苦一天,该下班关电脑了,python不像excel,有自动保存数据的功能,我们还是把劳动成果先保存了再说,否则关了机,可就啥也没有了。

这样做:

先提醒一下:大家如果要在自己的数据表格上操作,请一定记得要先备份好原始数据,因为pandas自带的写excel文件方法,是会把原文件覆盖掉的,如果你的原始表格数据很重要,执行下面这条命令,那些其他的表格和数据可都找不回来了,到时候可不要来打我。

df.to_excel("d:\\data\\test.xlsx")

再打开test.xlsx这个文件,就成这样了: