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

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

  • 相关阅读:
    iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测
    迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板
    体验更低功耗的开源硬件平台-迅为4412开发板
    【分享】iTOP-4412开发板使用之初体验[多图]
    【嵌入式开发板】大家都在玩儿的4412开发板
    [POJ] 2965.The Pilots Brothers' refrigerator
    [POJ] 1753.Flip Game
    [HDOJ] 1753.大明A+B (大数加法)
    C++ Primer 第五版 一些遇到的注意点记录。
    [HDOJ] 1172.猜数字
  • 原文地址:https://www.cnblogs.com/mdevelopment/p/9379283.html
Copyright © 2020-2023  润新知