Pandas 4.数据挑选

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
2
"""选择第一行到第三行, 第二列到第三列数据"""
df.iloc[0:3,1:3]

切片索引+普通索引

如果式切片索引+普通索引(交叉索引)要用ix方法

1
2
"""选择第一到第三行,客户姓名和唯一标示码这两列"""
df.ix[0:3,['姓名','唯一标示码']]