loc——經過行標籤索引行數據 # iloc——經過行號索引行數據 # ix——經過行標籤或者行號索引行數據(基於loc和iloc 和at 和iat 的混合) # 同理,索引列數據也是如此! # : 在切片操做至關於數組,先後沒有值時取所有,先後爲數字序號時,不包括末端,先後爲名稱時則包括末端 # 特殊狀況 df[1:] 至關於第一行到最後一行, df[1:-1] 第一行到倒數第二行 # at等價於loc, iat等價於iloc,可是隻能取到一個數據, 單數速度更快 # 直接經過df獲取數據,和ix的區別,默認序號取行, 默認字符串其餘取列, 正常獲取格式 df[行][列],(注意列的格式不能使用 :格式, 另外不能使用 df[行,列] 格式獲取) data=[[1,2,3],[4,5,6]] index=['A','B']#行號 columns=['a','b','c']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 #---------------------------------------獲取單行數據----------------------------------------------------------- # 只能用索引名,若是未指定索引,則是自帶(0--N) print df.loc['A'] # 只能用索序號, 取第一行 print df.iloc[0] # 使用ix測試,取第一行 print df.ix['A'] print df.ix[0] #---------------------------------------獲取單行數據----------------------------------------------------------- #---------------------------------------獲取列數據----------------------------------------------------------- # 所有行,列名爲'a'的數據 , 等價於 df.loc[:][ 'a'] 和 df['a'] # 使用loc print df.loc[:, 'a'] print df.loc[:][ 'a'] print df['a'] # 使用iloc print df.iloc[:, 0] # 使用ix print df.ix[:, 0] print df.ix[:, 'a'] #---------------------------------------獲取列數據----------------------------------------------------------- #---------------------------------------獲取多行數據----------------------------------------------------------- # 使用名稱時末端包含 print df.loc['A':'B'] # 使用默認索引時,末端不包含,因此須要使用0: 2 print df.iloc[0:2] print df.ix['A':'B'] print df.ix[0:2] #---------------------------------------獲取多行數據----------------------------------------------------------- #---------------------------------------獲取多列數據----------------------------------------------------------- # 等價於 df.loc[:, ['a','b']] # 取所有行,'a', 'b'列 print df.loc[:, 'a':'b'] print df.iloc[:, 0:2] print df.ix[:, 'a':'b'] print df.ix[:, 0:2] #---------------------------------------獲取多列數據----------------------------------------------------------- #---------------------------------------獲取多行多列數據----------------------------------------------------------- #取第一行 'a','b'列 print df.loc['A','a':'b'] print df.iloc[0, 0:2] print df.ix['A','a':'b'] print df.ix[0, 0:2] #---------------------------------------獲取多行多列數據----------------------------------------------------------- #---------------------------------------直接用df獲取數據----------------------------------------------------------- # 取所有行 # 取所有行,所有列 print df[:] # 取第一行,所有列 print df[0:1] # 取第二行到最後一行 print df[1:] # 取第1行到倒數第二行, 不包括最後一行 print df[0:-1] # 取倒數第二行 print df[-2:-1] # 獲取前2行 print df[0:2] # 獲取'a','b'列, 在df直接取的狀況下,不能使用'a':'b', 使用['a', 'b']代替,並且不能和行出如今同一個數組中 print df[['a','b']] # 第一行,'a','b'列, 在df直接取的狀況下,不能使用'a':'b', 使用['a', 'b']代替,並且不能和行出如今同一個數組中,並且必須出如今列後,df[0:1, [['a','b']]]這種寫法非法 # 等價於 df.ix[0:1, 'a':'b'] print df[0:1][['a','b']] print df.ix[0:1, 'a':'b'] print df.ix[0:1, ['a','b']] print df.ix[0:1][['a','b']] #操做列 #獲取列最後一行 print df['a'][-1] #獲取列最後兩行 print df['a'][-2:] #---------------------------------------直接用df獲取數據----------------------------------------------------------- #---------------------------------------直接用at獲取數據----------------------------------------------------------- print df.at['A', 'a'] #---------------------------------------直接用at獲取數據----------------------------------------------------------- #---------------------------------------直接用iat獲取數據----------------------------------------------------------- print df.iat[0, 0] #---------------------------------------直接用iat獲取數據-----------------------------------------------------------