之前写过两篇用Python代替Excel的文章,然后就一直没再写。
想起我刚学Python的时候,也是走过许多弯路的。从Python语法呀、环境呀那些学,学得头大,而且一边学一边忘。经历了几年的工作,也对Python常用的模块和语法有了了解,所以打算写一个系列,手把手教大家用Python处理数据,现学现用。会写得比较详细哈,如果有点基础的人,可能会觉得废话。
适用人群:编程0基础,且想往数据分析发展的。
温馨提示:我不是专业的编程出身,所以编的程序可能在性能方面、消耗内存方面没考虑那么多,但是对于初级入门来说,肯定是妥妥的,而且能解决工作中大部分的数据处理需求哈。
数据的读取
上一篇文章,介绍了如何安装anaconda,如果你是0基础,强烈建议你先花两分钟看一下上一篇文章哦,数据分析与Python:【手把手教你Python数分】1:Python与Anaconda
安装完成之后,你的Python之路就开启了大门。哈哈~
- 准备工作
童鞋们,作为数据分析师,咱们的个程序,可不是“hello world”哈,而是读取Excel文件。
准备工作:下载示例数据,提取码:tkqn
数据介绍:这份数据是在网上下载的亚马逊食品评论数据,为了方便后续学习,我自己添加了一些数据。这份数据没有实际价值,仅供学习~
data表:包括了产品ID、用户ID、时间(我随机生成的)、评分等。
price表:产品ID、价格(随机生成)。
- 我的个Python程序
下载好数据之后,存放到某个文件夹。
好,打开anaconda中的Spyder!
点击新建,出现新的代码框,可以在里面编写个程序。
咱们今天的目的,是为了用Python读取amazon_data那个文档。
import pandas as pd #pandas是数据处理模块,import是导入,as pd是命名别名
amazon_data = pd.read_excel(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx',sheetname='data')
在左边代码框写好这两句代码,点击绿色的三角运行程序(需要保存py文件),会在右边显示实时结果。
运行程序时,会一直显示右边的runfile(文件),因为文件比较大,读取时间比较久。若是出现 In [2] 则说明数据读取完毕,且右上方的 Variable exporer会显示运行程序中涉及的变量及相关信息,此处是我们命名的 amazon_data。
从这里可以看到,我们读取的数据Type为“DataFrame”格式,大小是 568454行,10列,列命包括:Id、ProductId、UserId等等。
此时变量已经在IPython实时窗口了,可以直接在里面打印出变量数据:print(amazon_data)
注意,如果没有运行,就在ipython窗口打印变量的话,是会出现错误的。
好,作为数据分析师,咱们个程序就编写好了。
- 语法讲解及延伸
今天涉及到 import 、read_excel这两个知识点。
import:
在Python当中,是有很多工具箱的。举个栗子,Python就相当于大学,工具箱就相当于专长不同的学院,有的擅长数据(pandas、numpy),有的擅长图像(matplotlib等),还有的是专门用来机器学习的(sklearn等)。那么我们用它们之前,需要用import导入,才能使用它们里面的各种方法或函数。
import 库名 as 别名,使用库的方法时得以【库名.方法】的格式,有些库名很长,用起来不方便,所以就要起个简单的别名。比如pandas时常是pd,numpy是np等等。
pd.read_excel():
这是Python常用来读取外部Excel文件的。当然还有读取csv的,pd.read_csv()。用法是括号里面是字符串:存放位置+文件名.格式,如 'd:\data\数据.xlsx' 。注意Excel是xlsx还是xls格式,如果没对应上是会出错的。
data = pd.read(r'd:\data\数据.xlsx') r是防止字符转译的,为了保险起见,还是都加上r吧。如果Excel里有多个sheet,默认是读个。如果要读特定的,可以加上sheetname='某某'。
如本次教程中的:
amazon_data = pd.read_excel(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx',sheetname='data')
因为本次数据实例,是有两个sheet的,一次读一个,当然OK。但是如果是多个且数据较多的情况,建议使用以下方法:
#方式1:
import pandas as pd
io = pd.io.excel.ExcelFile(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx')
amazon_data = pd.read_excel(io,sheetname='data')
price = pd.read_excel(io,sheetname='price')
io.close()
#方式2:
import pandas as pd
amazon_data = pd.read_excel(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx',sheetname='data')
price = pd.read_excel(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx',sheetname='price')
#在数据量大、sheet多的情况下,方式1的速度大于方式2的速度
延伸:
数据处理好了,如果需要输出Excel文件,则要用到to_excel。
import pandas as pd
amazon_data = pd.read_excel(r'D:\data\python\amazon-fine-foods\amazon_data.xlsx',sheetname='data')
amazon_data.to_excel(r'D:\data\new.xlsx') #存入D盘的data文件夹
同样,如果是多个表需要输出,且输出到一个Excel的不同sheet,可以使用:
import pandas as pd
writer=pd.ExcelWriter(r'D:\data\python\存储数据.xlsx')
amazon_data .to_excel(writer,sheet_name='data')
price.to_excel(writer,sheet_name='price')
writer.save()