首页 > 编程语言 >Python:Pandas中df.iloc和df.loc区别

Python:Pandas中df.iloc和df.loc区别

时间:2023-01-10 14:03:27浏览次数:47  
标签:loc Python 行号 df 索引 iloc 数据

df.iloc

官方文档中定义为“基于整数位置的索引,用于按位置选择。”

df.iloc就是只根据行列号对数据进行切片或选择

df.iloc [ raw , col ]:第一个参数raw表示行选,第二个参数表示列选,都必须是整数。

例子:

import pandas as pd
mydict = [{'a' : 1, 'b': 2, 'd' : 4},
        {'a': 100, 'b':200, 'd':400},
        {'a':1000, 'b':2000,'d':4000}]
df = pd.DataFrame(mydict)
df

image

1.按行索引

1.1整数作为索引

df.iloc[n],表示查找第n行

df.iloc[0]

image

1.2列表作为索引

查找列表中数字对应行号的数据,如,当输入[0,2]时,对应查找行号为0和2的数据,而不是0到2行

df.iloc[[0,2]]

image

1.3切片作为索引

进行多行数据查找(左闭右开区间)

df.iloc[:2]#选择前两行数据

image

df.iloc[1:3]

image

1.4布尔类型数据作为索引

需保持布尔类型数据与原数据数目一致,True代表选择,False代表不选择

df.iloc[[True, False, True]]#选择了第一行和第三行数据

image

1.5表达式作为索引

df.iloc[lambda x: x.index % 2 == 0]

image

2.同时规定行和列进行索引

与只按行索引类似,也有五种方式,在行和列之间添加“”分别规定行列索引范围。

df.iloc[0, 1]#选择行号=0,列号=1的数据
#输出:
2
df.iloc[[0, 2], [1, 2]]#选择行号为0和2,列号为1和2的数据

image

df.iloc[1:3, 0:3]#选择行号为1-2,列号为0-2的数据,注意切片范围为左闭右开
df.iloc[:, [True, False, True, False]]#行号全选,选择第1列和第3列数据
df.iloc[:, lambda df: [0, 2]]#选择dataframe的第1列与第3列

df.loc

loc按照标签或者索引、布尔值或者条件进行选择数据。

df.loc [ raw , col ]:第一个参数raw表示行选,行选只能是整数;后面的参数表示列选,列选只能是索引名称,比如姓名、年龄之类的

例子:

import pandas as pd
mydict = [{'a' : 1, 'b': 2, 'd' : 4},
        {'a': 100, 'b':200, 'd':400},
        {'a':1000, 'b':2000,'d':4000}]
df = pd.DataFrame(mydict)
df

image

df.loc[:,'b']#取出列标签为'b'的一列

image

df.loc[0:1,'b']#取出标签为'b'的第0行和第1行,左闭右闭区间

image

标签:loc,Python,行号,df,索引,iloc,数据
From: https://www.cnblogs.com/TTS-TTS/p/17040108.html

相关文章

  • 日常开发记录-js的Date对象中的toLocaleDateString()
    就是把Date对象的日期部分转换为字符串,并返回结果。代码示例:console.log(newDate())//2023-01-10T05:42:41.926Zconsole.log(newDate().toLocaleDateString())//......
  • python实现简单的snake game!
    实验环境:python3.8,pycharm需要的库:pygame,random需要下载64位对应python37版本的pygame网址https://pypi.org/project/Pygame/1.9.4/#files这里贴个安装方法。对代码的解......
  • Python socket详解
    目录网络编程1.基本概念Python中的网络编程网络编程1.基本概念1.什么是客户端/服务器架构?服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的“服务”......
  • Python在命令行模式下如何退出命令行
    第一种:这种方法最简单,直接输入Ctrl+Z ,再回车,即可退出; 第二种:输入exit(),再回车,也可以; 第三种:输入quit(),再回车,也行; ......
  • LinkedBlockingQueue和ArrayBlockingQueue对比
    对比一下LinkedBlockingQueue和ArrayBlockingQueue的区别。1.底层数据结构不同LinkedBlockingQueue底层是单向链表,只有一个后继指针/***Linkedlistnodeclass*......
  • LinkedBlockingQueue源码解析
    java.util.concurrent.LinkedBlockingQueue是一个底层为单向链表的,有界的,FIFO阻塞队列;访问和移除操作是在队头,添加操作在队尾进行,并且使用不同的锁进行保护。在使用线程池时......
  • Python 合并多张图片至一张图片
    PDF有多页,一次性转成JPG图片,JAVA报内存溢出,现改为,每一页存成一张图片,然后再将多张图片合成一张图片。安装库pip3installImage-ihttps://pypi.tuna.tsinghua.edu.......
  • 第4章 HDFS操作
    目录​4.1命令行操作​​​1.ls​​​​2.put​​​​3.moveFromLocal​​​​4.get​​​​5.rm​​​​6.mkdir​​​​7.cp​​​​8.mv​​​4.2JavaAPI操作​​​......
  • 第6章 HDFS HA配置
    目录​​6.1hdfs-site.xml文件配置​​​​6.2core-site.xml文件配置​​​​6.3启动与测试​​​​6.4结合ZooKeeper进行自动故障转移​​在Hadoop2.0.0之前,一个H......
  • HDFS核心概念与架构
    HDFS简介HDFS是Hadoop项目的核心子项目,在大数据开发中通过分布式计算对海量数据进行存储与管理,它基于流数据模式访问和处理超大文件的需求而开发,可以运行在廉价的商用服务器......