这篇文章是从Excel到python数据分析进阶指南》第二部分(4,5,6章)的终结了。
今天主要内容是第六章。数据筛选,与或非三个方法,外加一些><等等来进行数据筛选。
与或非门这个我们在高中数学就学过了,如果有同学喜欢玩MC的话,也会知道里面的红石电路也会用到这个与或非门。
Excel函数中会有这三个函数AND,OR,NOT,一般来说都是在excel函数嵌套中进行的。
在Python中呢,也有同名函数咯,但是我们这里用更快捷的方式 &(and),|(or),!=(not)
我们下面来看一下,与或非的条件求和
首先呢,我们先看数据
与,或
我们可以看到第一个我用的是&,这句代码的意思是找到数据表中 年龄大于25且城市为beijing这个条件的数据。
再看数据表。我们可以看到这上面是有符合条件的,但是没有显示出来?这是为什么呢?需要我去研究一下
那再看第二条,第二条用的是|,表示age>25或者是city为beijing只要成立一个即可。
这里面可以看到我对于这个第二行的这个代码被框选上了,为什么呢?因为原书上并不是这行代码,是后面还有一个.sort(['age'])用这个来排序,但是一直报错,说DataFrame没有sort这个方法可以使用!
umm
到底是谁的错呢???这就让我很好奇了。
条件求和
我们来个进阶版,既然筛选出来了数据,那我们让它求个和,对于价格上面进行求和
好了,现在我们条件求和也学会了。这个就比较牛逼了 。
非
下面用条件非
这就奇怪了,&不行,而 != 和 | 就正常。。这是为什么呢??????研究研究
暂时忘记上面的疑问,继续开始下面的内容
query函数查询
除了& | !=外,还有另外一个方法就是query函数
来看例子
这里的条件正常来说应该是包括了beijing的,但是这里面没有出现,那可能是我们的数据里面beijing出现了问题,那我给上面的&那条代码也改一下
这次就正常了,那就看来并不是命令出现了问题,而是这里面的beijing有些问题,可能是多些空格之类的不好察觉的东西吧
query函数结合条件查询进行的求和
好啦,到此为止第6章就结束了,这里面补充一个上次没写完的内容,就是条件提取
指定条件的数据提取
这里面我们要用到两个函数进行嵌套,loc和isin函数进行嵌套
首先isin函数是判断指定条件的值是不是正确的
看下例子
这里面也恰好看到了,诶?这个beijing并没有在数据里面进行匹配出来,说明数据里面的beijing是个山寨货。
那我们看下shanghai吧
1和4是上海,所以其实上面的问题也很好解决啦,就是在每次发现出现错误的时候,进行isin判断一下,是不是这个数据是山寨的就可以啦
那看看能不能判断多的,这里面就判断shanghai和shenzhen吧
还是真的可以的。那我们下面就要进行条件提取了,结合loc函数进行提取
这个就和上面的相符合咯
这个数据提取的功能很强大,还可以完成类似与分列的功能哦
我们看一下例子
这里面特意用个粗的笔来画箭头,这个结果是不是和我们之前用的分列很像呢?
好了,这里面我们完成了前6章的内容,那对于这些函数我们将会在第9章学完后做个总结
先提前公告一下,我会发一个实战文在专栏中,互相对比一下吧~