索引
单级索引
loc方法、iloc方法、[]操作符
loc方法
df.loc[1102]
df.loc[[1102,2304]]
df.loc[1304:].head()
df.loc[2402::-1].head()
df.loc[:,'Height'].head()
df.loc[1102:2401:3,'Height':'Math'].head()#联合索引
df.loc[lambda x:x['Gender']=='M'].head()
iloc方法
df.iloc[3]
df.iloc[3:5]
df.iloc[:,3].head()#单列索引
df.iloc[:,7::-2].head()#每隔开一个显示(多边索引)
[]操作符
s = pd.Series(df['Math'],index=df.index)
s[1101]
#使用的是索引标签
s[0:4]
#使用的是绝对位置的整数切片,与元素无关,这里容易混淆
# DataFrame的[]操作
df[1:2]
#这里非常容易写成df['label'],会报错
#同Series使用了绝对位置切片
#如果想要获得某一个元素,可用如下get_loc方法:
row = df.index.get_loc(1102)
df[row:row+1]
布尔索引
布尔符号:’&’,’|’,’~’:分别代表和and,或or,取反not
loc和[]中相应位置都能使用布尔列表选择
快速标量索引
当只需要取一个元素时,at和iat方法能够提供更快的实现
display(df.at[1101,'School'])
display(df.loc[1101,'School'])
display(df.iat[0,0])
display(df.iloc[0,0])
区间索引
#interval_range方法
pd.interval_range(start=0,end=5)
#closed参数可选'left''right''both''neither',默认左开右闭
pd.interval_range(start=0,periods=8,freq=5