经常有人被Python数据分析库Pandas中大量的函数和复杂的参数用法给吓到,以至于学习了一段时间就放弃了。
《Python学习方法:先生主干、再繁枝叶,任何领域都适用》一文中其实已经说到了我们必须首先有一条学习的主干,在掌握了主干的基础上再去充分挖掘它的枝干,这样我们的学习就会更加有效且有信心。
本文就是介绍Python进行数据分析的主干,让初学者了解到其原理并不复杂,掌握主干上的常用方法,慢慢就会进阶到熟练程度了。在下一篇文章我们将详细介绍Pandas库常用的函数。
01
数据导入
我们利用Python处理数据就首先得要将数据导入进Python内存中,导入的方式有很多种,但常见的是读取线下的Csv和Exce格式数据,爬虫获得数据,以及直接从数据库读取。
pandas是做数据分析的标准库,首先加载这个库。
import pandas as pd
本文读取数据利用read_excel函数读取线下数据。该函数重点掌握三个参数,第一个为要读取文件的路径名称,如果是默认路径就直接名称,第二个为要读取哪个工作表,第三个为标题选择。
data_raw=pd.read_excel("sale.xlsx",header=0,sheet_name=0,header=0)
另外,变量的命名一定要仔细斟酌,最好是不要太长,但意思又是能让人一目了然的。同时,对于读取的原始数据最好进行复制,避免后续操作出错后又需要重新读取数据。这个在原始数据量大时是非常耗时间的操作。所以,习惯性地进行原始数据复制。
data=data_raw.copy() #原始数据的浅复制
这时你就出现了一个枝干知识点,但别急于去研究什么是浅复制、深复制,刚开始知道这么做是有好处的就够了,留着疑问在后续去解决。
02
数据探索
拿到数据后,我们不要急于就去分析数据,而是要先看看数据的整体情况,掌握如下几种函数。
data.info() #查询数据框的基本情况
这个函数可以告诉我们数据有多少行、哪些列,每列的数据类型和非空数。
然后我们具体查看每行数据都是怎样的,看个前几行就可以了。
data.head(n=5) #查看前n行数据,默认为5行
该函数可以自由调整参数的数量,但默认是看前五行的数据。
03
数据处理
假设我们的需求是要计算出每个团队在各产品上的销售总额和销售数量。
在《数据分析工具Excel入门,你真的只需要掌握这两个函数就够了》一文中也说到了,其实数据描述的根本就是统计和计数,能够掌握这方面的函数,那数据描述就算是基本没问题了。
result=data.groupby(["团队ID","产品"])[["产品","销售额"]] .agg({"产品":"count","销售额":"sum"})print(result)
这个方法是万金油,一般的统计描述都可以解决。其中groupby是分组,agg是聚合。我们进行统计无外乎就是先分组再聚合,所以理解了这个函数,那常规的统计都没问题了。
这个函数统计出来的结果如下。
这好像就是我们想要的结果了,但还有个小细节要处理,就是分组后的索引变成列。
result.rename(columns={"产品":"产品数"},inplace=True) #更改列名,和一个索引名重名了result.reset_index(inplace=True) #将索引变更成列print(result)
这下这个结果就和我们平时在Excel中看到的是一样了,也是我们所想要的结果了。
那如果我们要简单地画图呢?简单的图其实也没必要用matplotlib库,Pandas库有内置的画图函数,而且用法更简单。
result.plot(x="团队ID",y="销售额",kind="bar") #DataFrame格式数据作图
其中,x为横坐标数据,y为纵坐标数据,kind为你想画哪种图形,这一用法非常简单。
04
数据导出
平时我们的工作汇报大部分都是基于Excel的,所以我们的结果一般都要导出到Excel中。
result.to_excel("result.xlsx")
这样,我们的工作目录就出现了导出的Excel格式文档。
05
结语
如此,我们就进行了一次简单完整的Python数据分析,别看它简单,其实数据分析的原理就是这么简单,那些复杂的数据分析任务无外乎就是在数据清洗和数据处理的逻辑上要比这更加复杂。
但并不是每个人的需求都是那么复杂的,所以我们不要一上来就选择那种复杂的教程,而是通过理解学会原理这条主干之后,再循序渐进结合自身需求去掌握枝干知识,
枝干要衍生到什么程度呢?这就视个人需求和兴趣来定,如果是想做专家,那枝繁叶茂最好;如果是解决工作问题就够了,那就需要多少枝干就衍生多少枝干。
总之,Python做数据分析不难,慢慢地你就会发现,整理分析逻辑才是最难的地方!