对于数据筛选,可以使用普通索引(loc)、和位置索引(iloc)等方式实现
函数格式: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的用法和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
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