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

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

二、iloc、loc、ix三者对比

    1. iloc和loc的区别
    • iloc主要使用数字来索引数据,不能使用字符型的标签来索引数据。
    • loc只能使用字符型标签来索引数据,不能使用数字来索引数据。特殊情况:当dataframe的行标签或列标签为数字时,loc就可以来索引
    1. 行标签和列标签都是数字的情况
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      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’]时的情况
1
2
3
4
5
6
7
8
9
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’]时的情况
1
2
3
4
5
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是一种混合索引,字符型标签和整型索引都可以使用
      1
      2
      3
      4
      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三者的区别

文章作者:Curry_Coder

发布时间:2019年07月29日 - 19:40:56

最后更新:2019年07月29日 - 20:54:06

原始链接:https://cdlwhm1217096231.github.io/数据分析/Pandas中iloc、loc、ix三者的区别/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
觉得对您有所帮助,请我喝杯可乐吧!