pandas 进行数据分析之前,同样也需要对数据进行挑选出要分析的相关数据
Pandas 之数据挑选
好比我们在菜市场买菜一样,我们也需要对数据进行挑选,你要分析什么就要把对应数据给筛选出来。
列选择
选择一列
只需要在 df 的后面方括号中知名选择的列名即可,需要多少列就填入多少
1 | df['列名'] |
选择多列
1 | df[['列名1','列名2','列名3']] |
位置索引选择
1 | df.iloc[:,[0,2]] # 获取第 1 列和第 3 列的数值 |
iloc 后括号中逗号之前部分表示要获取的行的位置,只属于一个冒号,不输入任何数值代表获取所有行;逗号之后的方括号表示要获取的列的位置,从 0 开始。
选择连续某几列
通过 iloc 方法来获取连续列
1 | df.iloc[:,0:3] # 获取第 1 列到第 4 列的值 |
iloc 后方括号逗号之前表示选择的行,只传一个冒号代表所有行。
行选择
选择一行
根据行名选择1
df.loc['一'] # 选择一行
利用索引选择1
df.iloc[0] # 选择第一行
选择多行
根据行名选择1
df.loc[['一','二']] # 选择一行和二行
利用索引选择1
df.iloc[[0,1]] # 选择第一行和第二行
连续选择某几行
利用 iloc
即可1
df.iloc[[0:3]] # 选择第一行到第三行
选择满足条件的行
比如在人员信息表中,要把异常值(年龄大于 200 的)筛选出来
布尔索引方式1
df[df['年龄'] < 200] # 选择年龄小于 200 的
当然还可以传入多个条件 用() & ()方法
1
df[(df['年龄'] < 200) & (df['ID'] < 110)] # 选择年龄小于 200 的
行列同时选择
实际业务中我们也会用到行列的同时选择,就是选择出行和列相交的部分。
字段名索引+字段名索引指定
loc
方法
1 | df.loc[['一','二'],['姓名','年龄']] # 选择年龄小于 200 的 |
位置索引+位置索引
iloc
方法
1 | df.iloc[[0,1],[0,2]] # 取第一行、第二行和第一列、第三列数据 |
布尔索引+字段名索引
选择年龄小于 200 的订单号和年龄
1 | df[df['年龄'] < 200][['订单号','年龄']] |
切片索引+切片索引
iloc
方法
1 | """选择第一行到第三行, 第二列到第三列数据""" |
切片索引+普通索引
如果式切片索引+普通索引(交叉索引)
要用ix方法
1 | """选择第一到第三行,客户姓名和唯一标示码这两列""" |