• 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)

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

  • 相关阅读:
    03把IL编译成可执行文件
    02值类型
    报错:该字符串未被识别为有效的DateTime
    01使用ILDasm.exe将可执行文件反编译成IL代码
    MVC自定义路由02-实现IRouteConstraint限制控制器名
    MVC自定义路由01-为什么需要自定义路由
    报错:System.Data.Entity.Infrastructure.DbUpdateException 更新条目时出错
    输入网址背后发生的故事
    使用jquery加载部分视图02-使用$.ajax()
    使用jquery加载部分视图01-使用$.get()
  • 原文地址:https://www.cnblogs.com/mdevelopment/p/9379283.html
Copyright © 2020-2023  润新知