美文网首页
Pandas中iloc、loc、ix三者的区别

Pandas中iloc、loc、ix三者的区别

作者: CurryCoder | 来源:发表于2019-03-01 11:52 被阅读4次

    一、综述:iloc、loc、ix可以用来索引数据、抽取数据

    二、iloc、loc、ix三者对比

      1. iloc和loc的区别
      • iloc主要使用数字来索引数据,不能使用字符型的标签来索引数据。
      • loc只能使用字符型标签来索引数据,不能使用数字来索引数据。特殊情况:当dataframe的行标签或列标签为数字时,loc就可以来索引
      1. 行标签和列标签都是数字的情况
    a = np.arange(12).reshape(3, 4)
    print("a: \n", a)
    
    df = pd.DataFrame(a)
    print("df: \n", df)
    
    print("df.loc[0]: \n", df.loc[0])
    print("df.iloc[0]: \n", df.iloc[0])
    
    print("df.loc[:,[0,3]]: \n", df.loc[:, [0, 3]])
    print("df.iloc[:, [0,3]]: \n", df.iloc[:, [0, 3]])
    
      1. 将行标签[0, 1, 2]改为['a','b','c']时的情况
    df.index = ['a', 'b', 'c']
    print("df: \n", df)
    
    # print(df.loc[0])  报错!TypeError: cannot do label indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [0] of <class 'int'>
    print("df.iloc[0]: \n", df.iloc[0])
    
    
    print("df.loc['a']: \n", df.loc['a'])
    # print("df.iloc['a']: \n", df.iloc['a']) 报错!
    
      1. 将列标签[0, 1, 2]改为['A', 'B', 'C']时的情况
    df.columns = ['A', 'B', 'C']
    print("df: \n", df)
    
    print("df.loc[:, 'A']: \n", df.loc[:, 'A'])
    # print("df.iloc[:, 'A']: \n", df.iloc[:, 'A'])  报错!
    
      1. ix是一种混合索引,字符型标签和整型索引都可以使用
    print("df.ix[0]: \n", df.ix[0])
    print("df.ix['a']: \n", df.ix['a'])
    print("df.ix[:, 0]: \n", df.ix[:, 0])
    print("df.ix[:, 'A']: \n", df.ix[:, 'A'])
    

    三、参考博客

    CSDN博客链接

    相关文章

      网友评论

          本文标题:Pandas中iloc、loc、ix三者的区别

          本文链接:https://www.haomeiwen.com/subject/nyxduqtx.html