当前位置: 首页 > 后端技术 > Python

Python数据分析入门教程(三):数据选择

时间:2023-03-25 20:01:02 Python

作者|CDA数据分析师在进行数据选择之前,应该将所有的盘子洗干净,分别放在不同的容器中。现在是裁剪和搭配的时候了,需要选择这些菜品。比如做一盘凉拌黄瓜,需要先找到黄瓜;要做一盘可乐鸡翅,首先要找到鸡翅。数据分析也是如此。你要分析什么,首先要筛选出相应的数据。常规的数据选择主要包括列选择、行选择、行列同时选择。一、列选择1、选择某一列/几列(1)Excel可以在Excel中选择某一列,直接用鼠标选择该列;如果要同时选中多列,且选中的列不相邻,此时可以先选中其中一列,然后按住Ctrl键,再选中其他列。比如同时选择客户姓名和交易时间这两列,如下图所示:(2)Python实现在Python中,如果我们要获取某列,只需要指明列名即可选中表后方括号中的df即可。如果是一列,只需要传入一个列名即可;如果同时选择多个列,可以传入多个列名,将多个列名存储在一个列表中。在Python中,我们将这种通过传入列名来选择数据的方法称为普通索引。除了传入具体的列名,我们还可以传入具体列的位置,即是哪一列,来选择数据,需要通过传入位置的iloc方法来获取数据。上面代码中,iloc后方括号中逗号前的部分表示要获取的行的位置,只输入一个冒号,不输入任何值,获取所有行;逗号后面的方括号表示要获取的列的位置,猎德位置也是从0开始计数的。我们把这种通过传入一个具体的位置作为位置索引来选择数据的方式称为。2.选择连续的几个列(1)ExcelExcel实现。当要选择连续的几列时,可以直接用鼠标选中这些列进行操作。当然,你也可以先选中一列,然后按住Ctrl键选中其他列。由于要选择的列是连续的,所以没必要这么麻烦。(2)Python实现在Python中,可以通过上面介绍的公共索引和位置索引获取某一列或多列的数据。当你想获取一些连续的列时,也可以使用普通索引和位置索引,但是因为你要获取的列是连续的,所以你只需要传入这些连续列的位置范围,同时你还需要使用方法。上面代码中,iloc后方括号中逗号前的一行表示选中的行。当只传入一个冒号时,表示选择所有行;逗号后面表示要选择的列的位置间隔,0:3表示选择第1列和第4列之间的值(包括第1列但不包括第4列),我们称这个方法为通过传入位置范围作为切片索引来获取数据。二、行选择1、选择某一行/某些行(1)Excel实现Excel中选择行的方法与选择列的方法相同。先选中一行,按住Ctrl键再选中其他行。(2)Python实现在Python中,获取行的方式主要有两种,一种是普通索引,即传入具体行索引的名称,需要使用loc方法;另一种是位置索引,即传入具体的行索引,行数需要使用iloc方法。为了看的更清楚,我们自定义行索引。2、选择连续几行(1)Excel实现在Excel中选择连续几行的方法与选择连续几列的方法相同,这里不再赘述。(2)Python实现在Python中,选择连续的几行时,也可以输入要选择的每一行的索引名称或行索引位置。显然这不是必须的,只要把连续线的位置用一个区间来表示,然后传给iloc就可以了。3.选择符合条件的行。获取某列时,获取该列的所有行。我们也可以只过滤掉这一列满足条件的值。比如年龄这一列,需要过滤掉非离群值(大于200的为离群值),即小于200的年龄,如何实现?(1)Excel实现在Excel中,我们直接使用过滤函数来过滤掉符合条件的值。过滤方法如下图:年龄小于200的数据过滤前后对比如下图:(2)PythonPython实现。我们可以通过直接在表名后面指定哪一列满足什么条件来过滤掉符合条件的数据。我们调用上述选择数据的方法,将判断条件作为布尔索引传入。传入条件也可以是多个,例如选中年龄小于200且唯一标识码小于102的数据如下。3、同时选择行和列上面的数据选择是针对单行或单列的。在实际业务中,我们也会用到同时选择行和列。所谓同时选择行和列,就是选择行和列的交集。比如我们要选取第二行和第三行、第二列和第三列交界处的数据,下图中的阴影部分就是最终的选取结果。Excel中行列的同时选择主要是通过鼠标拖拽实现的,与前面的单行/列选择方法一致,这里不再赘述。接下来主要讲一下如何用Python实现。1.普通索引+普通索引选择指定行列位置索引+位置索引通过同时传入行列索引的位置来获取数据,需要使用iloc方法。loc方法中第一个方括号表示选择行索引,传入行索引的名称;loc方法中第二个方括号表示列索引的选择,传入列索引的名称。2.位置索引+位置索引选择指定行和列位置索引+位置索引是获取数据的方式同事传入行列索引的位置,需要用到iloc方法。iloc方法中第一个方括号表示选择行索引,传入要选择的行索引的位置;第二个方括号代表选择列索引,传入要选择的列索引的位置,行索引位置和列索引位置都是从0开始计数。3.布尔索引+普通索引选择指定的行和列布尔索引+普通索引就是先通过布尔索引选择表的行,再通过普通索引选择列。上面代码的意思是选取age小于200的ordernumber和age,首先通过布尔索引选取所有age小于200的行,然后通过普通索引选取ordernumber和age这两列。4、切片索引+切片索引选择指定行列切片索引+切片索引是通过同时传入行列索引的位置区间来选择数据。5.切片索引+普通索引选择指定行和列前面说过,如果是普通索引,直接传入行名或列名,使用loc方法即可;如果是切片索引,即传入行或列的位置区间,使用iloc方法。如果是切片索引+普通索引,即行(列)使用切片索引,列(行)使用普通索引。这种交叉索引使用ix方法。大数据、AI时代,专业人士都在高薪奔跑,你怎么能OUT?马上去:https://www.cda.cn/?seo