zoukankan      html  css  js  c++  java
  • Pandas的loc,iloc与ix的用法及区别

    1.先来谈一谈loc,loc这个方法就是你有啥我就用啥,你没有的我不用,pandas对象的index,columns有什么,pd.loc[index,column],index就是pd.index的其中的一个值或者是其中几个值组成的序列,或就是pd.index,column是pd.columns中的一个值或者其中几个值,或者就是pd.columns

    来来上代码

     1 >>>data
     2    UserID  MovieID  Rating
     3 1       2      257       2
     4 0       3      251       2
     5 3       2       32       4
     6 2       4      256       1
     7 4       3      258       2
     8 >>>data.loc[0]
     9 UserID       3
    10 MovieID    251
    11 Rating       2
    12 Name: 0, dtype: int64
    13 >>>
    14 >>>data
    15    UserID  MovieID  Rating
    16 a       2      257       2
    17 b       3      251       2
    18 c       2       32       4
    19 d       4      256       1
    20 e       3      258       2
    21 >>>data.loc[0]  #对不起 你过不去,因为你没有0这个索引值
    22 >>>data.loc['a']  #正确方式
    23 UserID       2
    24 MovieID    257
    25 Rating       2
    26 Name: a, dtype: int64
    27 ######columns与index的情况类似这里不在赘述
    Viewe

    2.接下来我们再来谈一谈iloc这个方法,iloc正好与loc相反,iloc这个方法无论你pd对象有什么,我不稀罕,我只用我自己的这一套,pd.iloc[n1,n2],其中n1或者n2必须是数字,或者数字组成的序列(无论行或者列皆如此),但是这个数字必须在pd对象的行数或者列数的范围之内(不包括列数或者行数的最大值,因为从零开始)

    废话不多说,直接上代码

    >>>data
       UserID  MovieID  Rating
    1       2      257       2
    0       3      251       2
    3       2       32       4
    2       4      256       1
    4       3      258       2
    >>>data.iloc[0]
    UserID       2
    MovieID    257
    Rating       2
    Name: 1, dtype: int64
    #注意到索引为0的位置是第二行行,而结果却显示的是第一行,这就是iloc不听话的地方
    
    >>>data
       UserID  MovieID  Rating
    a       2      257       2
    b       3      251       2
    c       2       32       4
    d       4      256       1
    e       3      258       2
    >>>data.iloc['a']  #对不起,我不吃你这一套
    >>>data.iloc[0]
    UserID       2
    MovieID    257
    Rating       2
    Name: 1, dtype: int64
    #显然无论你的index或者columns的值是什么,都不影响我的iloc自己取值的规则
    

    3.最后再来说一说ix,ix这个就是个和事老,当你有数字索引值时,用数字索引就与loc一样(其中一个为数字,index或者columns就都为数字,若其中有字符串他会将数字进行转换),当index或者columns是字符串是你用字符串进行索引时与loc一样,用数字进行索引时与iloc一样,这里需要注意的就是当索引为数字时的情况(ix只有在字符索引的情况下用数字索引才会与iloc保持一致,否则一直支持loc)由于情况与上面类似不代码不再写了(lazy)

    有什么问题还望能够及时指出,小白在这不胜感激

  • 相关阅读:
    编译原理:正则表达式
    编译原理:基于状态转换图识别for语句
    汇编小笔记
    win10汇编如何debug(小白向)
    nodejs模块引用
    nodejs环境设置理解
    分享几个看上去很酷炫的运算
    JavaScript数据结构 (手打代码)
    爬取煎蛋XXOO妹子图片
    Python Selenium官方文档阅读笔记
  • 原文地址:https://www.cnblogs.com/mdevelopment/p/9379283.html
Copyright © 2011-2022 走看看