loc和iloc的用法和区别

loc和iloc的用法和区别loc 通过行标签索引行数据 iloc 通过行号索引行数据 ix 通过行标签或者行号索引行数据 基于 loc 和 iloc 的混合 标签切片 如 a c 与序列切片如 0 2 不同 后者不包含 index 2 的元素 前者包含结束标签 c 所在的行 布尔类型数组作为标签 例如 True False 等价于 a c 1 locimportnum

  • 标签切片,如’a’:‘c’,与序列切片如0:2不同,后者不包含index=2的元素,前者包含结束标签’c’所在的行。
  • 布尔类型数组作为标签,例如[True, False]等价于[‘a’,‘c’]

1.loc

import numpy as np import pandas as pd from pandas import * from numpy import * data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz")) print(data) # w x y z #A 0 1 2 3 #B 4 5 6 7 #C 8 9 10 11 #D 12 13 14 15 #loc #行的选取 print(data.loc["A"]) print(type(data.loc["A"])) #w 0 #x 1 #y 2 #z 3 #Name: A, dtype: int32 # 
  
    print(data.loc[["A"]]) print(type(data.loc[["A"]])) # w x y z #A 0 1 2 3 # 
   
     #综上,[]返回Series,[[]]返回DataFrame print(data.loc["A","w"]) print(type(data.loc["A","w"])) #0 # 
    
      print(data.loc[:,"w"]) print(type(data.loc[:,"w"])) #A 0 #B 4 #C 8 #D 12 #Name: w, dtype: int32 # 
     
       print(data.loc["A":"C"]) print(type(data.loc["A":"C"])) # w x y z #A 0 1 2 3 #B 4 5 6 7 #C 8 9 10 11 # 
      
        print(data.loc["A":"C","w":"y"]) print(type(data.loc["A":"C","w":"y"])) # w x y #A 0 1 2 #B 4 5 6 #C 8 9 10 # 
       
         print(data.loc[["A","C"],["w","y"]]) print(type(data.loc[["A","C"],["w","y"]])) # w y #A 0 2 #C 8 10 # 
        
          print(data.loc[:,["w","y"]]) print(type(data.loc[:,["w","y"]])) # w y #A 0 2 #B 4 6 #C 8 10 #D 12 14 # 
         
           #列的选取 print(data["w"])#等同于print(data.loc[:,"w"]) #A 0 #B 4 #C 8 #D 12 #Name: w, dtype: int32 print(data.loc[:,"w"]) #A 0 #B 4 #C 8 #D 12 #Name: w, dtype: int32 print(data["w"].equals(data.loc[:,"w"]))#True #根据特殊条件选取行列 print(data["w"]>5) #A False #B False #C True #D True #Name: w, dtype: bool print(data.loc[data["w"]>5]) # w x y z #C 8 9 10 11 #D 12 13 14 15 print(data.loc[data["w"]>5,"w"]) print(type(data.loc[data["w"]>5,"w"])) #C 8 #D 12 #Name: w, dtype: int32 # 
          
            print(data.loc[data["w"]>5,["w"]]) print(type(data.loc[data["w"]>5,["w"]])) # w #C 8 #D 12 # 
           
             print(data["w"]==0) print(data.loc[lambda data:data["w"]==0]) print(type(data.loc[lambda data:data["w"]==0])) #A True #B False #C False #D False #Name: w, dtype: bool # w x y z #A 0 1 2 3 # 
            
              #loc赋值 print(data) # w x y z #A 0 1 2 3 #B 4 5 6 7 #C 8 9 10 11 #D 12 13 14 15 data.loc[["A","C"],["w","x"]]=999 print(data) # w x y z #A 999 999 2 3 #B 4 5 6 7 #C 999 999 10 11 #D 12 13 14 15 
             
            
           
          
         
        
       
      
     
    
  

2.iloc

data=DataFrame(np.arange(16).reshape(4,4),index=list("ABCD"),columns=list("wxyz")) print(data) # w x y z #A 0 1 2 3 #B 4 5 6 7 #C 8 9 10 11 #D 12 13 14 15 print(data.iloc[0]) print(type(data.iloc[0])) #w 0 #x 1 #y 2 #z 3 #Name: A, dtype: int32 # 
  
    #print(data.iloc["A"])报错 #print(data.loc[0])报错 print(data.loc[["A"]]) print(type(data.loc["A"])) # w x y z #A 0 1 2 3 # 
    
  

3.iloc和loc差别

iloc是按照行数取值,而loc按着index名取值

data=DataFrame(np.arange(16).reshape(4,4),index=list("1234"),columns=list("wxyz")) print(data) # w x y z #1 0 1 2 3 #2 4 5 6 7 #3 8 9 10 11 #4 12 13 14 15 print(data.iloc[0]) #w 0 #x 1 #y 2 #z 3 #Name: 1, dtype: int32 #print(data.loc[0])报错

参考:https://blog.csdn.net/boywaiter/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176556.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:38
下一篇 2026年3月26日 下午9:38


相关推荐

  • PHP和PHPINFO

    PHP和PHPINFOPHP开放源码和跨越平台,PHP可以运行在WINDOWS和多种版本的LINUX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少

    2022年7月4日
    26
  • OpenClaw 配置目录

    OpenClaw 配置目录

    2026年3月13日
    3
  • Pycharm导入模块失败原因

    Pycharm导入模块失败原因最近我在学习 Python 函数过程中出现了导入文件失败的问题 困扰了我好几天 我 PC 端下载了两个版本的 python 环境 Python2 7 和 Python3 8 应该是我的 Python3 8 包有点问题 所以导入文件失败 我试着换成了 Python2 7 环境 这个问题就解决啦 为了解决这个问题 我也在网上查询了好多 在这里也跟大家分享一下哈 pycharm 中搜索包时都是从根目录查找 所以有时文件多了就会混乱 需要把当前文件夹指定为 sorce 目录即可 具体操作如下

    2026年3月19日
    2
  • Linux 操作memcache命令行

    Linux 操作memcache命令行

    2022年2月8日
    40
  • ajax跨域解除方案,关于Ajax跨域问题及解决方案详析「建议收藏」

    ajax跨域解除方案,关于Ajax跨域问题及解决方案详析「建议收藏」复现Ajax跨域问题做两个简单的小项目复现Ajax跨域问题.后端语言使用Java首先是一个简单的订单系统,通过访问/loadOrderList,最终以json串形式返回订单集合.该项目使用Tomcat发布在7070端口.@RequestMapping(“/loadOrderList”)@ResponseBodypublicListloadOrderList(Stringuid){//…

    2022年8月24日
    9
  • python爬虫(下)–模拟登录与Captcha识别

    python爬虫(下)–模拟登录与Captcha识别前言之前在 python 爬虫 上 请求 关于模拟浏览器方法 中我挖了一个坑 时隔一个多月 趁着最近有点空 我想是时候填填坑了 总结总结了 不然真的就忘了验证码虽然之前挖坑的那篇已经说了一些 现在还是稍微说一说 在模拟登录中 其实让写爬虫的人疼头就是验证码 只要能破掉验证码 那么登录不是问题 验证码 Chaptcha 内容从英文字符和数字识别 到数字加减乘除 再到汉字的出现 后面还有 12306 的看

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号