学习笔记之第六章 数据选择(六)

第六章 数据选择(六)

  • 常规的数据选择主要有列选择、行选择、行列同时选择三种方式。

6.1 列选择

6.1.1 选择某一列/某几列

  • 在Python中我们要想获取某列只需要在表df后面的方括号中指明要选择的列名即可。如果是一列,则只需要传入一个列名;如果是同时选择多列,则传入多个列名即可,多个列名用一个list存起来。
df[["客户姓名","交易日期"]]
#在Python中我们把这种通过传入列名选择数据的方式称为普通索引。
  • 输出结果
	客户姓名	交易日期
0	张旭	2018-10-01
1	李刚	2018-10-02
2	孙峰	2018-10-03
3	赵恒	2018-10-04
4	赵恒	2018-08-12
  • 除了传入具体的列名,我们还可以传入具体列的位置,即第几列,对数据进行选取,通过传入位置来获取数据时需要用到iloc方法
df.iloc[:,1:2]
#我们把这种通过传入具体位置来选择数据的方式称为位置索引。
  • 输出结果
客户姓名
0	张旭
1	李刚
2	孙峰
3	赵恒
4	赵恒
  • 在上面的代码中,iloc 后的方括号中逗号之前的部分表示要获取的行的位置,只输入一个冒号,不输入任何数值表示获取所有的行;
  • 逗号之后的方括号表示要获取的列的位置,列的位置同样是也是从0开始计数。

6.1.2 选择连续的某几列

  • 在Python中可以通过前面介绍的普通索引和位置索引获取某一列或多列的数据。当你要获取的是连续的某几列,用普通索引和位置索引也是可以做到的,但是因为你要获取的列是连续的,所以只要传入这些连续列的位置区间即可,同样需要用到iloc方法。
  • 通过传入一个位置区间来获取数据的方式称为切片索引

6.2 行选择

6.2.1 选择某一行/某几行

  • 在Python中,获取行的方式主要有两种,一种是普通索引,即传入具体行索引的名称,需要用到loc方法;另一种是位置索引,即传入具体的行数,需要用到iloc方法。
df.loc[2:]
  • 输出结果
	订单编号	客户姓名	唯一识别码	交易日期
2	A3	孙峰	103	2018-10-03
3	A4	赵恒	104	2018-10-04
4	A5	赵恒	104	2018-08-12

6.2.2 选择连续的某几行

  • 在Python中,选择连续的某几行时,你同样可以把要选择的每一个行索引名字或者行索引的位置输进去。很显然这是没有必要的,只要把连续行的位置用一个区间表示,然后传给iloc即可。
df.loc[1:]
  • 输出结果
	订单编号	客户姓名	唯一识别码	交易日期
1	A2	李刚	102	2018-10-02
2	A3	孙峰	103	2018-10-03
3	A4	赵恒	104	2018-10-04
4	A5	赵恒	104	2018-08-12
df.iloc[1:]
  • 输出结果
订单编号	客户姓名	唯一识别码	交易日期
1	A2	李刚	102	2018-10-02
2	A3	孙峰	103	2018-10-03
3	A4	赵恒	104	2018-10-04
4	A5	赵恒	104	2018-08-12

6.2.3 选择满足条件的行

  • 在Python中,我们直接在表名后面指明哪列要满足什么条件,就可以把满足条件的数据筛选出来
df[df["年龄"]<55]
  • 输出结果
订单编号	客户姓名	唯一识别码	年龄	交易日期
0	A1	张旭	101	24	2018-10-01
1	A2	李刚	102	34	2018-10-02
2	A3	孙峰	103	23	2018-10-03
4	A5	赵恒	104	43	2018-08-12
  • 我们把上面这种通过传入一个判断条件来选择数据的方式称为布尔索引

6.3 行列同时选择

  • 上面的数据选择都是针对单一的行或列进行选择,实际业务中我们也会用到行、列同时选择,所谓的行、列同时选择就是选择出行和列的相交部分。

6.3.1 普通索引+普通索引选择指定的行和列

df.loc[["一","三"],["客户姓名","年龄"]]
  • 输出结果
客户姓名	年龄
一	张旭	24
三	孙峰	23

6.3.2 位置索引+位置索引选择指定的行和列

df.iloc[[1,3],[2,4]]
  • 输出结果
唯一识别码	交易日期
二	102	2018-10-02104	2018-10-04

6.3.3 布尔索引+普通索引选择指定的行和

df[df["年龄"]<55][["客户姓名","年龄"]]
  • 输出结果
	客户姓名	年龄
一	张旭	24
二	李刚	34
三	孙峰	23
五	赵恒	43

6.3.4 切片索引+切片索引选择指定的行和列

df.iloc[1:,2:]
  • 输出结果
唯一识别码	年龄	交易日期
二	102	34	2018-10-02103	23	2018-10-03104	66	2018-10-04104	43	2018-08-12

6.3.5 切片索引+普通索引选择指定的行和列

  • 前面我们说过,如果是普通索引,就直接传入行或列名,用loc方法即可;如果是切片索引,也就是传入行或列的位置区间,要用 iloc 方法。如果是切片索引+普通索引,也就是行(列)用切片索引,列(行)用普通索引,这种交叉索引要用ix方法
  • 尝试了一下报错了,后续在了解一下这个方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值