zoukankan      html  css  js  c++  java
  • pandas库疑难问题---3、loc方法和iloc方法的区别

    pandas库疑难问题---3、loc方法和iloc方法的区别

    一、总结

    一句话总结:

    loc方法是基于标签的,iloc方法是基于整数索引的
    # iloc
    # 连续切片
    print(data.iloc[1:3:1,1:3])
    # 不连续
    print(data.iloc[[1,3],[1,3]])
    
    # loc
    # 连续切片
    print(data.loc["A":"D":2,"z":"v":-1])
    # 不连续
    print(data.loc[["A","C"],["w","y"]])

    二、loc方法和iloc方法的区别

    博客对应课程的视频位置:3、loc方法和iloc方法的区别-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/380

    loc方法是基于标签的,iloc方法是基于整数索引的

    loc is label-based, which means that you have to specify rows and columns based on their row and column labels.

    iloc is integer index based, so you have to specify rows and columns by their integer index like you did in the previous exercise.

    In [1]:
    import pandas as pd
    import numpy as np
    
    data = pd.DataFrame(np.arange(20).reshape((4,5)),index=list("ABCD"),columns=list("vwxyz"))
    print(data)
    
        v   w   x   y   z
    A   0   1   2   3   4
    B   5   6   7   8   9
    C  10  11  12  13  14
    D  15  16  17  18  19
    

    1、iloc方法

    In [2]:
    # 连续切片
    print(data.iloc[1:3:1,1:3])
    
        w   x
    B   6   7
    C  11  12
    
    In [3]:
    # 不连续
    print(data.iloc[[1,3],[1,3]])
    
        w   y
    B   6   8
    D  16  18
    

    2、loc方法

    In [4]:
    # 连续
    print(data.loc["A":"C","w":"y"])
    
        w   x   y
    A   1   2   3
    B   6   7   8
    C  11  12  13
    
    In [5]:
    print(data.loc["A":"D":2,"z":"v":-1])
    
        z   y   x   w   v
    A   4   3   2   1   0
    C  14  13  12  11  10
    
    In [6]:
    # 不连续
    print(data.loc[["A","C"],["w","y"]])
    
        w   y
    A   1   3
    C  11  13
    

    需要注意的是:

    在iloc使用索引定位的时候,因为是索引,所以,会按照索引的规则取值,如:[1:3] 会取出 1,2 这2个值。

    但是loc按照label标签取值则不是这样的。如:["A":"C"] A,B,C 都会取出来。

    In [ ]:
     
     
    博客对应系列课程视频位置:
    1、pandas打乱数据集-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/360
    2、pandas切片操作-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/379
    3、loc方法和iloc方法的区别-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/380
    4、DataFrame类型转换成Numpy中ndarray-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/39/381
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    Lucene 全文检索入门
    Elastic Stack 笔记(九)Elasticsearch5.6 集群管理
    Elastic Stack 笔记(八)Elasticsearch5.6 Java API
    Elastic Stack 笔记(七)Elasticsearch5.6 聚合分析
    Elastic Stack 笔记(六)Elasticsearch5.6 搜索详解
    Elastic Stack 笔记(五)Elasticsearch5.6 Mappings 映射
    JAVA中的static
    类继承和初始化类的执行顺序
    java继承 初始化顺序
    分析java类的初始化契机
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13889553.html
Copyright © 2011-2022 走看看