写在最前
Python在数据分析领域有三个必须需要熟悉的库,分别是,和,如果排个优先级的话,我推荐先学。
主要用于数组和矩阵的运算,一般在算法领域会应用比较多。
用于作图的话其实可替代的库会比较多,譬如有封装的更高级的,调用起来会更方便,也有交互性更强的,风格会更讨喜。
但对于,似乎完全绕不开,当然这三个库都是非常优秀的库,如果你已经入坑数据分析,建议全学。
基本用法读取数据SQL
sql读取数据其实没啥可说的,一句简单的就OK了。
Pandas
支持的数据源很多,包括csv,excel,以及读取数据库,当然读取数据库的话需要配合其他库,包括oracle,mysql,vertica,presto等等都是支持的。
常见的如下:
:用于读取csv文件;
:用于读取Excel文件;
:用于读取json文件;
:用于读取数据库,传入sql语句,需要配合其他库连接数据库。
由于我本地没有数据库资源,我这边就以csv文件为例:
筛选列SQL
Pandas
筛选行SQL
sql本身并不支持筛选特定行,不过可以通过函数排序生成虚拟列来筛选。
Pandas
pandas支持的方式就比较多了,如果你了解python的切片操作,以下应该会比较好理解。
:筛选前3行;
:筛选1到10行中的奇数行,最后一个数字表示每隔2行取数;
行列同时筛选
pandas主要有和来支持行列筛选,虽然还有,但在目前最新的已经将其弃用了。
其实我一开始对这两个方法很容易混淆,其实后面发现很好区分,如果需要用列名来筛选,请用,如果使用列索引,请用。
根据条件筛选SQL
Pandas
在看示例之前需要提醒下,在Pandas中并不支持 和,相应的是和,而且由于和在运算优先级是优于 ,等运算符等,因此在多条件筛选需要加上括号,类似。
分组聚合SQL
Pandas
基本用法:
对DataFrame进行goupby运算后,返回的是一个groupby对象,我们可以通过将其转为DataFrame。
高阶用法:
我们可以同时对于不同列采取不同的聚合运算,譬如对A列使用,对B列使用,在SQL中其实很好实现的功能,在Pandas我们需要借助来实现 。
连接SQL
Pandas
在Pandas中我们可以使用来完成连接对操作。
各参数解释如下:
left:一个DataFrame对象;
right:另一个DataFrame对象;
how:连接方式,默认为inner(内连接);
on:连接键,必须在left和right两个DataFrame中存在,否则使用left_on和right_on;
left_on:left中的连接键;
right_on:right中的连接键;
left_index/right_index:默认为False,如果为True则使用索引作为连接的键。
高阶用法正则表达式SQL
Oracle目前是支持正则表达式的,其他的数据库暂时不大了解,如果想了解用法的可以参考这篇教程,这边就不举例了。
Pandas
当然对于pandas除了正则之外,其实在中还内置了很多字符串的方法,如切割(),替换()等等。
自定义函数
Pandas中内置很多常用的方法,譬如求和,最大值等等,但很多时候还是满足不了需求,我们需要去调用自己的方法,Pandas中可以使用和来调用自定义的方法,需要注意下和的区别:
:是的内置方法,也就是说只能用于单一列,返回的是数据是格式的;
:可以用于单列或者多列,是对整个DataFrame的元素进行运算,返回一个DataFrame。
DataFrame拼接
前文提到了 ,其实也算作拼接的一种,如果将类比为操作,接下来讲的拼接将类似于SQL中的操作。
写在最后
本来想着Pandas用了这么久了,写个教程应该不麻烦,结果耗费了两个下午也才写了点皮毛。其实如果要写的详细点,每个点都能写篇文章,篇幅有限,只能点到即止,后面如果想到再做补充吧。
Talk is cheap, show me the code.
领取专属 10元无门槛券
私享最新 技术干货