loc、iloc、ix 區別

loc——經過行標籤索引行數據 
iloc——經過行號索引行數據 
ix——經過行標籤或者行號索引行數據(基於loc和iloc 的混合) 
同理,索引列數據也是如此!python

舉例說明: 
一、分別使用loc、iloc、ix 索引第一行的數據: 
(1)locspa

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 #print df.loc['a'] ''' c 1 d 2 e 3 ''' print df.loc[0] #這個就會出現錯誤 ''' TypeError: cannot do label indexing on <class 'pandas.indexes.base.Index'> with these indexers [1] of <type 'int'> '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

(2)iloc.net

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 print df.iloc[0] ''' c 1 d 2 e 3 ''' print df.iloc['a'] ''' TypeError: cannot do positional indexing on <class 'pandas.indexes.base.Index'> with these indexers [a] of <type 'str'> '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

(3)ixcode

import pandas as pd
data=[[1,2,3],[4,5,6]]
index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 print df.ix[0] ''' c 1 d 2 e 3 ''' print df.ix['a'] ''' c 1 d 2 e 3 '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

二、分別使用loc、iloc、ix 索引第一列的數據:blog

import pandas as pd data=[[1,2,3],[4,5,6]] index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 print df.loc[:,['c']] print df.iloc[:,[0]] print df.ix[:,['c']] print df.ix[:,[0]] #結果都爲 ''' c a 1 b 4 '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

三、分別使用loc、iloc、ix 索引多行的數據:索引

import pandas as pd data=[[1,2,3],[4,5,6]] index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 print df.loc['a':'b'] print df.iloc[0:1] print df.ix['a':'b'] print df.ix[0:1] #結果都爲 ''' c d e a 1 2 3 b 4 5 6 '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

四、分別使用loc、iloc、ix 索引多列的數據:ci

import pandas as pd data=[[1,2,3],[4,5,6]] index=['a','b']#行號 columns=['c','d','e']#列號 df=pd.DataFrame(data,index=index,columns=columns)#生成一個數據框 print df.loc[:,'c':'d'] print df.iloc[:,0:2] print df.ix[:,'c':'d'] print df.ix[:,0:2] #結果都爲 ''' c d a 1 2 b 4 5 '''轉自 https://blog.csdn.net/hecongqing/article/details/61927615
相關文章
相關標籤/搜索