我,很懒的一个人。
以前工作时,很少做总结,所以进步慢。
几年前,还在上班,公司学习美军,想沉淀各位“专家”的经验,我曾牵头搞过一个大部门的知识社区,拉赞助搞活动,用户发展到了4位数以上,日点击量在5位数上。
可自己很少写东西,弄个链接转发多方便啊。
人总是这样,搭个台子,却指望别人来唱戏。
不写东西的原因有两个,一个是懒,另一个是被高考语文不及格阴影一直笼罩着(嘻嘻,踢一下高考这只猫),觉得会写东西是件好高大上的事情,哪是我这种人干的事。
其实,不应该限定自己,任何时候。
一辈子就那么几十年,想到什么,就去试试吧,又不会死人,管别人怎么看呢。
自学python编程有一段时间了,越来越喜欢它。
因为它比较符合我懒的天性,有好多别人已经开发好的模块可以直接拿来用,从最简单的科学计算、数据统计到高大上的机器学习、自然语言处理,都有现成的,基本能满足你的日常需求,你不用再去“重复造轮子”,拿来用就是了,多么美好的事情。
先自问自答一个问题:
编程只是计算机软件工程师能做的事么?
肯定的回答是:不是。
不信,你可以去百度一下,日本有个退休的老太太,自学编程,还开发出了好几款手机游戏呢。
任何人,只要你感兴趣,拿起一本编程书籍,打开电脑,至少编个小程序,可以把"Hello world!",在屏幕上打印出来。
在python里,就是一句话的事情:print("Hello world")。
就是这么简单。
事情,不开始做的话,永远很难。
我的大多数朋友们,不像我已经下岗了,他们都还是有工作的,所以呢,后面,我会结合一些日常办公常要做的琐碎事,把我的学习心得进行整理出来,供大家参考,希望能对他们有所帮助。
像如何安装python等等这类问题,我就不讲,随便找一本最便宜的入门手册,照着做就行了。如果你自己安装过office软件,或在电脑上玩过游戏,应该不是问题。
好,闲话少说,再说就显出啰嗦的本性了。
今天要讲的是:
如何用python读、写excel表格的数据
1、需要用到的模块(别人写好的软件)
如果只写一张sheet页,那么我们只需用到一个模块,它叫pandas。
如果要写多个sheet页,那么还要用到另一个模块,openpyxl。
我们一步步来,今天只用到pandas
2、准备工作:
先弄一个有数据的Excel文件,我们假设它的名字叫的"test.xlsx",里面有一个sheet页,叫"sheet1"
3、扩展python的能力:
前面我们说过了,python生态环境中,有非常多的人在为它开发各种各样的“软件”, 以扩展python的能力,在使用它们之前,我们要引入它,并且最好给引入的能力取个名字,以方便你在后面使用它。
下面这句话就是python中引入软件模块的常用格式,当然它还有许多变种,我们先讲最简单的一种:
import pandas aspd
“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]
如果要汇总所有的报销费用,这样做:
df["报销金额"].sum()
有没有发现一个问题呢?,汇总出来的数似乎和excel表格中的数据实际加总值不太一样,小数点后多了很多位,这是因为计算机把读进来的带小数位的数全转换成了“浮点”类型,而浮点数在运算时,由于计算机本身的进制转换的原因,导致了极微小的偏差,但这不影响整体的数据应用。
另外,默认情况下,pandas在读取数据后,会自动给加一列序号,这是它的"索引",就相当于格子间的编号,你可以很方便地用它来存取数据,当然,你也可以不用它这个自动的索引,方法我们后面再讲。
下面,我们给这个表格加一列数据,比如“接单人”,先简单一点,假设全部都是“吴MM”签收的报销单,这样做:
df["接单人"] = "吴MM"
然后我们再把它们全部召唤出来,集合排个队瞧瞧:
5、把处理好的数据写入excel表格:
辛苦一天,该下班关电脑了,python不像excel,有自动保存数据的功能,我们还是把劳动成果先保存了再说,否则关了机,可就啥也没有了。
这样做:
先提醒一下:大家如果要在自己的数据表格上操作,请一定记得要先备份好原始数据,因为pandas自带的写excel文件方法,是会把原文件覆盖掉的,如果你的原始表格数据很重要,执行下面这条命令,那些其他的表格和数据可都找不回来了,到时候可不要来打我。
df.to_excel("d:\\data\\test.xlsx")
再打开test.xlsx这个文件,就成这样了:
看了我今天的学习笔记,大家有没有一点点收获呢,是不是对python也感一点兴趣了,有兴趣的话,就打开电脑试试吧。
如果有啥问题,可在公众号后台给我留言,在我能力圈内的,尽快给大家回复。
下篇预告:
我这个笔记没啥长远规划,想到哪里,学到哪里,就写到哪里吧。
下篇准备写一下:
如何用python处理多个不同excel文件中的数据。
领取专属 10元无门槛券
私享最新 技术干货