pandas笔记(5)筛选功能——loc&iloc

对于数据筛选,可以使用普通索引(loc)、和位置索引(iloc)等方式实现

loc:根据行列索引名称进行筛选

函数格式:df.loc([index],[column])
当不需要对index进行筛选时,需要用冒号“:”来占位。

创建一个DataFrame

import  numpy as np
import  pandas as pd
df = pd.DataFrame(np.arange(16).reshape((4,4)),index = list('abcd'),columns=['A','B','C','D'])
df

# 返回
	A	B	C	D
a	0	1	2	3
b	4	5	6	7
c	8	9	10	11
d	12	13	14	15

  • 单行查找
# 查找a行
df.loc[['a'],]

# 返回

    A	B	C	D
a	0	1	2	3
  • 多行查找
# 查找a,c行
df.loc[['a','c'],]

# 返回
	A	B	C	D
a	0	1	2	3
c	8	9	10	11
  • 查找单列
# 查找A列
df.loc[:,['A']]

# 返回
	A
a	0
b	4
c	8
d	12
  • 查找多列
# 查找A,C列
df.loc[:,['A','C']]

# 返回
	A	C
a	0	2
b	4	6
c	8	10
d	12	14
  • 查找多行多列
# 查找a,c行,A,C列
df.loc[['a','c'],['A','C']]

# 返回

    A	C
a	0	2
c	8	10

iloc:根据行列索引位置进行筛选

iloc的用法和loc的用法基本相同,当不需要对index进行筛选时,同样需要用冒号“:”来占位。

  • 单行查找
# 查找第1行
df.iloc[[0],]

# 返回

    A	B	C	D
a	0	1	2	3
  • 多行查找
# 查找第1,3行
df.iloc[[0,2],]

# 返回
	A	B	C	D
a	0	1	2	3
c	8	9	10	11


# 查找第1-2行
df.iloc[0:2,]

# 返回
    A	B	C	D
a	0	1	2	3
b	4	5	6	7
  • 查找单列
# 查找第1列
df.iloc[:,[0]]

# 返回
	A
a	0
b	4
c	8
d	12
  • 查找多列
# 查找第1,3列
df.iloc[:,[0,2]]

# 返回
	A	C
a	0	2
b	4	6
c	8	10
d	12	14


# 查找第1-2列
df.iloc[:,0:2]

# 返回

	A	B
a	0	1
b	4	5
c	8	9
d	12	13
  • 查找多行多列
# 查找第1-2行,第1-2列
df.iloc[0:2,0:2]

# 返回

   	A	B
a	0	1
b	4	5

loc 按条件筛选

  • 单列条件筛选
    根据某一列筛选出符合条件的行
df.loc[df['A']==4,:]
#可省略逗号,冒号
df.loc[df['A']==4]

# 返回
    A	B	C	D
b	4	5	6	7
  • 多列条件筛选
    根据某几列筛选出符合条件的行
df.loc[(df['A']>2)&(df['B']<10)]
# 也可以写成df.loc[df['A']>2].loc[df['B']<10]


# 返回
	A	B	C	D
b	4	5	6	7
c	8	9	10	11
  • 行列筛选
    根据需要筛选出符合条件的行及列
df.loc[df['A']>4,["A",'B','C']]

# 返回
	A	B	C
c	8	9	10
d	12	13	14

你可能感兴趣的:(Pandas)