python pandas (ix & iloc &loc) 的区别

来源:互联网 发布:2017网络热点 编辑:程序博客网 时间:2024/06/05 06:45

loc——通过行标签索引行数据 
iloc——通过行号索引行数据 
ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合) 
同理,索引列数据也是如此!

举例说明: 
1、分别使用loc、iloc、ix 索引第一行的数据: 
(1)loc

import pandas as pddata=[[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    1d    2e    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

import pandas as pddata=[[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    1d    2e    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)ix

import pandas as pddata=[[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    1d    2e    3'''print df.ix['a']'''c    1d    2e    3'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2、分别使用loc、iloc、ix 索引第一列的数据:

import pandas as pddata=[[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]]#结果都为'''   ca  1b  4'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3、分别使用loc、iloc、ix 索引多行的数据:

import pandas as pddata=[[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  ea  1  2  3b  4  5  6'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4、分别使用loc、iloc、ix 索引多列的数据:

import pandas as pddata=[[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  da  1  2b  4  5'''


转载自:http://blog.csdn.net/hecongqing/article/details/61927615




原创粉丝点击