首先我们来造一批测试数据
df=pd.DataFrame(np.arange(42).reshape(7,6),columns=list('abcdefg'),index=list('hijklm'))
loc只能根据行/列名查询
- df.loc[:,:] #所有数据
- df.loc['h','a'] #h行a列
- df.loc[['h','k'],['c','d']] #h,k行的c,d列
- df.loc['h':'k','c':'d'] #h~k行的c~d列
iloc只能根据行/列索引查询
- df.iloc[:,:] # 显示所有数据
- df.iloc[1,1] #显示第一行第一列的数字
- df.iloc[[1,3],[1,3]] # 显示1,3行的1,3列数字
- df.iloc[1:3,1:3] # 显示1~3行的1~3列数字
at只能根据行/列名查询
at['a','c'] # 显示a行c列的数字
iat只能根据行/列索引查询
iat[1,1] # 显示第1行1列的数字
dataframe[]只能单独查询行或者列,不能行和列混合查询
- df[:] # 取所有数据
- df[1:3] # 取1~3行数据
- df['a'] # 取'a'列数据
- df[['a','b']] #取'a','b'两列数据
- df['a'][2] # 取'a'列数据的第二行
ix既能通过索引查询,又能通过行列名进行查询
.ix具备.loc,.iloc,.at,.iat,dataframe[]的所有功能,就不再过多介绍,总之就是.loc,.iloc,.at,.iat,dataframe的语法他都能用
- df.ix['i':'l','a':'d']
- df.ix[['i','h'],['a','d']]
- df.ix[1:3,2:4]
- df.ix[[1,3],[2,4]]
- df.ix[:,:]