首页
学习
活动
专区
圈层
工具
发布

pandas | 如何在DataFrame中通过索引高效获取数据?

今天是pandas数据处理专题第三篇文章,我们来聊聊DataFrame中的索引。 上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。...今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。...所以DataFrame当中也为我们封装了现成的行索引的方法,行索引的方法一共有两个,分别是loc,iloc。这两种方法都可以查询某一行,只是查询的参数不同,本质上没有高下之分,大家可以自由选择。...: [199, 299, 322, 212, 311], 'gender': ['M', 'F', 'F', 'M', 'M']} df = pd.DataFrame(data) ?...先是iloc查询行之后,再对这些行组成的新的DataFrame进行列索引。

17.6K10

Pandas DataFrame 多条件索引

Pandas DataFrame 提供了多种灵活的方式来索引数据,其中一种是使用多条件索引,它允许使用逻辑条件组合来选择满足所有条件的行。...解决方案可以使用以下步骤来实现多条件索引:首先,使用 isin() 方法来选择满足特定值的条件。isin() 方法接受一个列表或元组作为参数,并返回一个布尔值掩码,指示每个元素是否包含在列表或元组中。...代码例子以下是使用多条件索引的代码示例:import pandas as pd# 生成一些数据mult = 10000fruits = ['Apple', 'Banana', 'Kiwi', 'Grape...: vegetables, 'Animal': animals, 'xValue': xValues, 'yValue': yValues,}df = pd.DataFrame...然后,我们使用多条件索引来选择满足以下条件的行:水果包含在 fruitsInclude 列表中蔬菜不包含在 vegetablesExclude 列表中我们还选择了满足以下条件的行:水果包含在 fruitsInclude

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解pd.DataFrame中的几种索引变换

    导读 pandas中最常用的数据结构是DataFrame,而DataFrame相较于嵌套list或者二维numpy数组更好用的原因之一在于其提供了行索引和列名。...惯例开局一张图 01 索引简介与样例数据 Series和DataFrame是pandas中的主要数据结构类型(老版本中曾有三维数据结构Panel,是DataFrame的容器,后被取消),而二者相较于传统的数组或...,以新接收的一组标签序列作为索引,当原DataFrame中存在该索引时则提取相应行或列,否则赋值为空或填充指定值。...所以,对索引执行变换的另一种可选方式是用map函数,其具体操作方式与DataFrame常规map操作一致,接收一个函数作为参数即可: ?...04 set_index与reset_index set_index和reset_index是一对互逆的操作,其中前者用于置位索引——将DataFrame中某一列设置为索引,同时丢弃原索引;而reset_index

    3.3K20

    【项目实战】自监控-10-DataFrame索引操作(中篇)

    4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 这个系列主要是实际在做项目的一个笔记 自监控项目,主要是对采集的质量监控数据做的一个实时预警 今天讲讲DataFrame...行索引与常规列的互换 主要涉及:reset_index,set_index 今日歌曲: Part 1:构建一个DataFrame 一个DataFrame可以看成一个二维表格,不过这个二维表格有行标题也有列标题...,而且每类标题可能不止一级 示例中由一个字典构建一个DataFrame 通过index参数指定行名称 给行索引本身指定名称ts import pandas as pddict1 = {"a": [1,...Part 2:将索引变成列 使用reset_index将索引变成常规列 通过对replace参数进行设置,确定是否在原变量上执行操作 原索引变成常规列后,会重新自动生成一个默认索引 df.reset_index...Part 3:将列变成索引 使用set_index将常规列变成索引 同样通过设置inplace值决定是否在原变量上执行操作 执行该操作原索引会消失 df.set_index("a", inplace=True

    68510

    【项目实战】自监控-09-DataFrame索引操作(上篇)

    获取索引信息 主要涉及:index,columns 今日歌曲: Part 1:构建一个DataFrame 一个DataFrame可以看成一个二维表格,不过这个二维表格有行标题也有列标题,而且每类标题可能不止一级...示例中由一个字典构建一个DataFrame 通过index参数指定行名称 import pandas as pddict1 = {"a": [1, 3, 5, 6], "b": [11, 12, 15..., 16], "c": [22, 27, 29, 30], "d": [82, 87, 89, 80]}df = pd.DataFrame(dict1, index=[...Part 2:获取行索引列索引信息 使用index属性获取行索引信息,使用values将索引对象转化为列表 使用columns属性获取列索引信息,使用values将索引对象转化为列表 注意columns...Part 3:获取某一索引相对位置 获取某一索引在该索引类中的位置,第一位为0 涉及方法get_loc index_ = df.index column_ = df.columnsprint("\n")

    64110

    【项目实战】自监控-11-DataFrame索引操作(下篇)

    -Windows-x86_64 编辑器:pycharm-community-2016.3.2 这个系列主要是实际在做项目的一个笔记 自监控项目,主要是对采集的质量监控数据做的一个实时预警 今天讲讲对DataFrame...的行列索引重排序 今日歌曲: 1 数据源 Part 1:构建一个DataFrame 一个DataFrame可以看成一个二维表格,不过这个二维表格有行标题也有列标题,而且每类标题可能不止一级 示例中由一个字典构建一个...DataFrame 通过index参数指定行名称 构建完一个DataFrame后,另外通过loc又增加了一列 通过字典构建DataFrame,它的列已经默认排序好了 为了体现后续的排序效果,额外增加了一列...2 索引排序 Part 2:根据索引排序 sort_index(axis=0, ascending=True)可以选择对行索引排序还是列索引排序 axis=0对行索引排序 axis=1对列索引排序 ascending...3 索引输出 Part 3:将索引转化为列表输出 使用tolist()函数将索引直接转化为列表 df.index.values也可以得到索引对应的值,但是类型依然是numpy.ndarray ind

    50720

    Elasticsearch 通过Scroll遍历索引,构造pandas dataframe 【Python多进程实现】

    笔者从3.7亿数据的索引,取200多万的数据,从取数据到构造pandas dataframe总共大概用时14秒左右。每个分片用一个进程查询数据,最后拼接出完整的结果。...由于返回的json数据量较大,每次100多万到200多万,如何快速根据json构造pandas 的dataframe是个问题 — 笔者测试过read_json()、json_normalize()、DataFrame...(eval(pandas_json))及DataFrame.from_dict(),from_dict()速度最快 转载请注明出处:https://www.cnblogs.com/NaughtyCat/...() appended_data = [] while (scroll_size > 0): frame = pd.DataFrame.from_dict([document...集合即可构造一个完整的dataframe,如下: frame = pd.concat(result, ignore_index=True, sort = False) ****************

    1.9K21

    PostgreSQL通过索引获取heap tuple解析

    本文介绍通过索引扫描获取heap tuple的TID后,如何通过TID获取heap tuple。 一、先介绍两个数据结构关系 ? 二、接着介绍获取记录流程 ?...1、通过索引扫描后,得到索引记录(key,tid),接着需要通过tid获取对应的heap记录。...only tuple的情况: 1)通过tid得到heap的页号及记录索引号。...2)第一次进来,at_chain_start标记为TRUE即HOT链的起始记录 3)根据tid解析出的页号和索引号得到记录的索引 4)第一次进来,并且记录被修剪了,即老记录的索引号指向了最新记录的索引号...,此时获取最新记录的索引号,返回3)循环获取其索引并进行判断 5)记录为最新记录时,获取tuple值并保存到heapTuple中 6)排除被修剪,第一次进来获取对应tuple后调用HeapTupleSatisfiesVisibility

    1.5K10

    使用Python获取Oracle索引信息

    这个专题讲述如何讲这些监控数据保存在MySQL中为日后所用 上节讲到建立一个MySQL数据库并新建一张用于存放索引信息的表 今天讲如何获取Oracle已使用过的索引名称 环境设置 Linux系统为 Centos...MySQL版本 MySQL 5.7 (GA) 连接Oracle模块:cx_Oracle 连接MySQL模块:PyMySQL 捞取原理 由于我们的执行计划都存在v$sql_plan中,所以我们定期从这个视图中获取索引信息...,经过一段时间的积累即可知道哪些索引没被使用过 新建获取索引信息的语句 新建 getindex.sql文件,这里我们从v$sql_plan视图中获取已使用过的索引名称 select DISTINCT OBJECT_OWNER...该脚本获取所有在视图中的索引并把结果存放在一个list(列表)中 脚本名称为 checkindex.py ?...Python获取oracle已使用过的索引名称 下节我们讲如何把结果放到MySQL数据库中

    1.1K30

    使用Python获取Oracle索引信息

    ,今天讲如何获取Oracle已使用过的索引名称 由于我们的执行计划都存在v$sql_plan中,所以我们定期从这个视图中获取索引信息,经过一段时间的积累即可知道哪些索引没被使用过 ---- 环境设置...Centos 6.8 Python环境为 Python 3.6 MySQL版本 MySQL 5.7 (GA) 连接Oracle模块:cx_Oracle 连接MySQL模块:PyMySQL ---- 新建获取索引信息的语句...新建 getindex.sql文件,这里我们从v$sql_plan视图中获取已使用过的索引名称 ?...---- 新建脚本自动获取Oracle已使用过的索引名称 该脚本获取所有在视图中的索引并把结果存放在一个list(列表)中 脚本名称为 checkindex.py ?...可以看到已经从v$sql_plan视图中获取到了已使用过的索引的名称 ---- 至此我们已经学会了如何利用Python获取oracle已使用过的索引名称,下节我们讲如何把结果放到MySQL数据库中

    1.2K20

    Spark DataFrame

    DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表。...SchemaRDD作为Apache Spark 1.0版本中的实验性工作,它在Apache Spark 1.3版本中被命名为DataFrame。...对于熟悉Python pandas DataFrame或者R DataFrame的读者,Spark DataFrame是一个近似的概念,即允许用户轻松地使用结构化数据(如数据表)。...使用Spark DataFrame,Python开发人员可以利用一个简单的并且潜在地加快速度的抽象层。最初Spark中的Python速度慢的一个主要原因源自于Python子进程和JVM之间的通信层。...对于python DataFrame的用户,我们有一个在Scala DataFrame周围的Python包装器,Scala DataFrame避免了Python子进程/JVM的通信开销。

    1.2K40

    量化分析入门——从聚宽获取财务数据Pandas Dataframe

    两大数据结构 DataFrame——带标签的,大小可变的,二维异构表格 Series——带标签的一维同构数组 重点说下DataFrame,它是Pandas中的一个表格型的数据结构,包含有一组有序的列...,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。...获取财务数据Dataframe 聚宽是国内不错的量化交易云平台,目前可以通过申请获得本地数据的使用权。授权之后,就可以通过其提供的SDK获取到你想要的数据。...在这里,将通过一个获取上市公司财务数据的例子来展示DataFrame的使用。...比如对于一段时间内股票收盘价,想要快速地获得这段时间内每一天的最近30天的最高价,那就可以用这个函数快速的获取。

    2.5K40
    领券