首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用过Excel,就会获取pandas数据框架中的值、行和列

在Excel中,我们可以看到行、列和单元格,可以使用“=”号或在公式中引用这些值。...df.columns 提供列(标题)名称的列表。 df.shape 显示数据框架的维度,在本例中为4行5列。 图3 使用pandas获取列 有几种方法可以在pandas中获取列。...方括号内的列名是字符串,因此我们必须在其两侧使用引号。尽管它需要比点符号更多的输入,但这种方法在任何情况下都能工作。因为我们用引号将字符串(列名)括起来,所以这里也允许使用带空格的名称。...要获取前三行,可以执行以下操作: 图8 使用pandas获取单元格值 要获取单个单元格值,我们需要使用行和列的交集。...记住这种表示法的一个更简单的方法是:df[列名]提供一列,然后添加另一个[行索引]将提供该列中的特定项。 假设我们想获取第2行Mary Jane所在的城市。

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

    动态数组公式:动态获取某列中首次出现#NA值之前一行的数据

    标签:动态数组 如下图1所示,在数据中有些为值错误#N/A数据,如果想要获取第一个出现#N/A数据的行上方行的数据(图中红色数据,即图2所示的数据),如何使用公式解决?...图1 图2 如示例图2所示,可以在单元格G2中输入公式: =LET(data,A2:E18,i,MIN(IFERROR(BYCOL(data,LAMBDA(x,MATCH(TRUE,ISNA(x),0...如果想要只获取第5列#N/A值上方的数据,则将公式稍作修改为: =INDEX(LET(data,A2:E18,i,MIN(IFERROR(BYCOL(data,LAMBDA(x,MATCH(TRUE,ISNA...(d)-1)) 如果数据区域中#N/A值的位置发生改变,那么上述公式会自动更新为最新获取的值。...当然,也可以使用VBA来解决: Sub CopyValues() Dim rng As Range Dim i As Long With Worksheets("Sheet1") Set

    15210

    MySQL优化总结

    按作用分类: 1.主键索引:不解释,都知道 2.普通索引:没有特殊限制,允许重复的值 3.唯一索引:不允许有重复的值,速度比普通索引略快 4.全文索引:用作全文搜索匹配,但基本用不上,只能索引英文单词,...而且操作代价很大 按数据存储结构分类: 1.聚簇索引 定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。...二级索引的叶子结点存储的是主键值 覆盖索引:可直接从非主键索引直接获取数据无需回表的索引 比如: 假设t表有一个(clo1,clo2)的多列索引 select clo1,clo2 from t where...range checked for each record (index map: #):MySQL没有发现好的可以使用的索引,但发现如果来自前面的表的列值已知,可能部分索引可以使用。...range checked for each record (index map: #):MySQL没有发现好的可以使用的索引,但发现如果来自前面的表的列值已知,可能部分索引可以使用。

    1.7K40

    索引策略,性能爆炸!!!

    独立的列 如果查询中的列不是独立的列,则MySQL就不会使用索引。 「独立的列」指的是索引列不能是表达式中的一部分,也不能是函数的参数。...当行的主键值要求必须将这一行插入到某个已满的页中,存储引擎会将该页面分裂成两个页面来容纳该行,导致表占用更多的存储空间。...获取主键之后再去聚簇索引中查找到对应的行 「主键索引」 「二级索引」 覆盖索引 如果一个索引包含或覆盖所有需要查询的字段的值,我们就称之为覆盖索引。...(2)索引按照列值顺序存储,对于IO密集型的范围查询会比随机从磁盘读取的每一行数据的IO要少得多。...使用索引扫描来做排序 MySQL有两种方式可以生成有序的结果: 通过操作排序、或者按索引顺序排序,如果EXPLAIN出来的type值是index,则说明MySQL使用了索引扫描来做排序。

    1K20

    高性能MySQL(3)——创建高性能索引

    B-Tree通常意味着所有值都是按顺序存储的,并且每个叶子页到根的距离相同。存储引擎已不同的方式来使用B-Tree索引,性能也各不相同。...哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。 1.3、全文索引 全文索引是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中 的值。...例如:key(col1, col2, col3); MySQL5.0之后的版本引入了“索引合并”的策略,一定程度上可以使用表上的多个单列索引来定位表中的行; 索引合并策略有时候是一种优化后的结果,但实际上更说明表上的索引建得很糟糕...其实mysql可以使用索引来直接获取列的数据。...对于MyISAM表,这三类碎片都可能发生,但InnoDB不会出现短小的行碎片,InnoDB会移动短小的行,并重写到一个片段中。

    1.3K20

    SQL语句逻辑执行过程和相关语法详解

    而逻辑执行过程中我们想象出来的虚拟表,只是为了方便理解而描述出来的,实际上不会有这样的表,它们只是按一定规则存放在内存中的一些数据行,虽然某些步骤中可能也会使用系统自建的临时表存放中途的数据,但它们不是表...因此,建议TOP/LIMIT和ORDER BY一起使用。但即使如此,仍是不安全的。例如,ORDER BY的列中有重复值,那么TOP/LIMIT的时候如何决定获取哪些行呢?...假如DISTINCT消除了部分列的重复值,最终将只返回一条重复记录,而如果使用非select_list的列排序,将要求返回一条重复记录的同时还要返回每个重复值对应的多条记录以便排序,而在要求范式的关系表中是无法整合这样的结果...在分组以前,知道了该学生的姓名"chenyi"之后,关注点可能要转化为它的主键列sid值"1",因为主键列唯一标识每一行,知道了主键值就知道了该行的所有信息。...例如,分组后对"Java"班返回了一个汇总值,假如同时要使用sid列和name列,因为这两列没有被聚合或分组,因此只能为这两列的每个值返回一行,也就是说在返回汇总标量值的同时还要求返回"Java"班组中的每一行

    3.7K20

    MySQL数据库规约.

    正例: 商品类目名称使用频率高, 字段长度短,名称基本一成不变, 可在相关联的表中冗余存储类目名称,避免关联查询 9、单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。...说明: 1) consts 单表中最多只有一个匹配行(主键或者唯一索引) ,在优化阶段即可读取到数据。 2) ref 指的是使用普通的索引(normal index) 。..., a 列的几乎接近于唯一值,那么只需要单建 idx_a 索引即可 8、如果有 order by 的场景,请注意利用索引的有序性。...2、count(distinct col) 计算该列除 NULL 之外的不重复行数, 注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同的值,...3、当某一列的值全是 NULL 时, count(col)的返回结果为 0,但 sum(col)的返回结果为NULL,因此使用 sum()时需注意 NPE 问题。

    1.4K50

    MySQL面试题 硬核47问

    要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。满足第三范式(3NF)必须先满足第二范式(2NF)。...简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 所以第三范式具有如下特征: 每一列只有一个值 每一行都能区分。每一个表都不包含其他表已经包含的非主关键字信息。...按照 作用字段个数 进行划分,分成单列索引和联合索引普通索引: 即针对数据库表创建索引唯一索引: 与普通索引类似,不同的就是:MySQL数据库索引列的值必须唯一,但允许有空值主键索引: 它是一种特殊的唯一索引...全文索引:是目前搜索引擎使用的一种关键技术,对文本的内容进行分词、搜索。覆盖索引:查询列要被所建的索引覆盖,不必读取数据行3、MySQL数据库中索引的工作机制是什么?...Innodb按主键大小有序插入,MyISAM记录插入顺序是,按记录插入顺序保存。

    1.6K40

    EXPLAIN 使用分析

    因为只匹配一行数据,所以很快。如将主键置于where列表中,MySQL就能将该查询转换为一个常量。 system: 表中仅有一行,这是const联结类型的一个特例。平时不会出现,这个也可以忽略不计。...该列完全独立于EXPLAIN输出所示的表的次序。这意味着在possible_keys中的某些键实际上不能按生成的表次序使用。 如果该列是NULL,则没有相关的索引。...ref 列与索引的比较,表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值 rows 根据表统计信息以及索引选用情况,大致估算出找到所需的记录所需要读取的行数 Extra 包含不适合在其他列中显示...Using where 表明使用where过滤 using join buffer 使用了连接缓存 impossible where where子句的值总是false,不能用来获取任何元组 select...distinct 优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作。

    1K20

    01-03章 检索排序数据第1章 了解SQL第2章 检索数据第3章

    主键(primary key) 有一列(或几列),用于唯一标识表中的每一行。...任何列作为主键的条件: 任意两行都不具有相同的主键值; 每一行都必须具有一个主键值(主键列不允许NULL值); 主键列中的值不允许修改或更新; 主键值不能重用(某行从表中删除,它的主键不能赋给以后的新行...因此,表示(如把上面的价格值显示为正确的十进制数值货币金额)一般在显示该数据的应用程序中规定。 2.4 检索所有列 SELECT语句可以检索所有的列,在实际列名的位置使用星号(*)通配符。...使用DISTINCT关键字,作用于所有列,指示数据库只返回不同的值。 SELECT DISTINCT vend_id FROM Products; ?...屏幕快照 2018-05-25 06.04.04.png 对于上述例子中的输出,仅在多个行具有相同的 prod_price 值时才对产品按prod_name 进行排序。

    2.6K10

    说烂嘴了的Explain执行计划,你不一定讲得清楚

    常见于主键 或 唯一索引扫描。 注意:ALL全表扫描的表记录最少的表如t1表 ref:非唯一性索引扫描,返回匹配某个单独值的所有行。...本质是也是一种索引访问,它返回所有匹配某个单独值的行,然而他可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体 range:只检索给定范围的行,使用一个索引来选择行。...(Index与ALL虽然都是读全表,但index是从索引中读取,而ALL是从硬盘读取) ALL:Full Table Scan,遍历全表以找到匹配的行 possible_keys:查询涉及到的字段上存在索引...就是select列表中的字段,只用从索引中就能获取,不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。...(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即可完成优化 distinct:优化distinct操作,在找到第一个匹配的元祖后即停止找同样值的动作 综合Case 执行顺序

    61720

    explain 深入剖析 MySQL 索引及其性能优化指南

    只有使为TRUE的行才被插入VT4 GROUP BY:按GROUP BY 子句中的列列表对VT4中的行分组,生成VT5 CUBEROLLUP:把超组插入VT5,生成VT6...DISTINCT:将重复的行从VT8中移除,产生VT9 ORDER BY:将VT9中的行按ORDER BY子句中的列列表排序,生成一个有表(VC10) TOP:从VC10的开始处选择指定数量或比例的行,...如果MySQL只使用索引中的firstname部分,则key_len将是50。 在不损失精确性的情况下 ,key_len数据列里的值越小越好(意思是更快)。...8.ref:显示使用哪个列或常数与key一起从表中选择行。 ref数据列给出了关联关系中另一个数据表里的数据列的名字。 9.rows:MySQL所认为的它在找到正确的结果之前必须扫描的记录数。...extra列返回的描述的意义: 值 意义 Distinct 一旦MySQL找到了与行相联合匹配的行,就不再搜索了。

    1.8K60

    重新学习Mysql数据库5:根据MySQL索引原理进行分析与优化

    ref:非唯一索引扫描,返回匹配某个单独值的行,本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体range:只检索给定范围的行,使用一个索引来选择行...key列显示使用了哪个索引,一般就是在你的where语句中出现了between、、in等的查询。这种范围扫描索引比全表扫描要好,因为它只需要开始于索引的某一点,而结束于另一点,不用扫描全部索引。...extra 包含不适合在其他列中显示但十分重要的额外信息 包含的信息:(危险!)...ref 显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引上的值。...’2014-05-29’就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值,但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。

    79810

    MySQL索引分类及相关概念辨析

    在InnoDB存储引擎中,默认使用主键建立索引树,其叶子节点中每个数据项包括主键和主键所在行的所有列数据或数据地址。...即使表有一亿个数据,按这种算法,那也就可能经历一次hash运算就可以快速找到某页任意一行数据元素的所在的磁盘文件地址,时间复杂度是O(1),那比B+Tree快得多啊!...MySQL默认使用主键建立索引树,如果没有主键会看是否有可以唯一标识一个行记录的列,有则使用该列建立索引树,没有的话MySQL内部会创建一个隐含的列类似于rowid来建立索引树。...聚集索引的叶子节点就是索引列+数据值,整个磁盘数据页都是叶子节点。换句话说,数据页上存放的是完整的每行记录。因此聚集索引的一个优点就是:通过过聚集索引能获取完整的整行数据。...: select * from table_name where a = 'xxxx' ; 前缀索引是一种能使索引更小、更快的有效办法,但另一方面也有其缺点,那就是MySQL无法使用前缀索引做ORDER

    42940

    基础篇:数据库 SQL 入门教程

    如需从 “LASTNAME” 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句: SELECT DISTINCT LASTNAME FROM Persons; 通过上述查询...数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。...这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。 如图,“Id_P” 列是 Persons 表中的的主键。这意味着没有两行能够拥有相同的 Id_P。...Orders 表中的的主键,同时,“Orders” 表中的 “Id_P” 列用于引用 “Persons” 表中的人,而无需使用他们的确切姓名。...NULL 值不包括在计算中。 语法: SELECT MAX(列名) FROM 表名; MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。

    8.9K10

    ❤️ 爆肝3天!两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

    如需从 “LASTNAME” 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句: SELECT DISTINCT LASTNAME FROM Persons; 通过上述查询...有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。 数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。...在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。 如图,“Id_P” 列是 Persons 表中的的主键。...Orders 表中的的主键,同时,“Orders” 表中的 “Id_P” 列用于引用 “Persons” 表中的人,而无需使用他们的确切姓名。...语法: SELECT MAX(列名) FROM 表名; MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。

    8.4K11

    MySQL索引分类及相关概念辨析

    在InnoDB存储引擎中,默认使用主键建立索引树,其叶子节点中每个数据项包括主键和主键所在行的所有列数据或数据地址。...即使表有一亿个数据,按这种算法,那也就可能经历一次hash运算就可以快速找到某页任意一行数据元素的所在的磁盘文件地址,时间复杂度是O(1),那比B+Tree快得多啊!...MySQL默认使用主键建立索引树,如果没有主键会看是否有可以唯一标识一个行记录的列,有则使用该列建立索引树,没有的话MySQL内部会创建一个隐含的列类似于rowid来建立索引树。...聚集索引的叶子节点就是索引列+数据值,整个磁盘数据页都是叶子节点。换句话说,数据页上存放的是完整的每行记录。因此聚集索引的一个优点就是:通过过聚集索引能获取完整的整行数据。...: select * from table_name where a = 'xxxx' ; 前缀索引是一种能使索引更小、更快的有效办法,但另一方面也有其缺点,那就是MySQL无法使用前缀索引做ORDER

    55011

    SQL | SQL 必知必会笔记 (一 )

    列(column) 表中的一个字段,所有表都是有一个和 多个列组成 行(row) 表中的一个记录(record) 主键(primary key) 一列(或一组列),其值能够唯一标识表中每一行 关键字(...SQL 不区分大小写,但一般习惯关键字用大写,列名和表名使用小写。 处理 SQL 语句时,所有空格都会被忽略。一般认为写成多行更容易维护。 选择多个列时,一定要在列名之间加上逗号,但最后一个列名不加。...检索不同的值 SELECT vend_id FROM Products; 使用 DISTINCT 关键字只返回不同的(唯一的)值。...SELECT DISTINCT vend_id FROM Products; DISTINCT 关键字作用于所有列,不仅仅是跟在其后那一列。...NULL 表示空值,确定是否空值,不能简单的 = NULL,SELECT 语句有一个特殊的 WHERE 子句 IS NULL ,可用来检查具有 NULL 值的列。

    2.6K51

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券