0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Pandas函数的三个接口介绍

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-01 16:38 次阅读

本文主要介绍pandas.DataFrame的三个接口,即assign、eval、query,分别用于赋值、查询和执行计算。

01 assign

在数据分析处理中,赋值产生新的列是非常高频的应用场景,简单的可能是赋值常数列、复杂的可能是由一列产生另外一个一列,对于这种需求pandas有多种方法实现,但个人唯独喜欢assign,用起来优雅高效。

图片

例如,对于以上简单的DataFrame数据框,需要创建一个新的列C,一般来说可能有3种创建需求:常数列、指定序列数据以及由已知列通过一定计算产生。那么应用assign完成这3个需求分别是:图片

注意事项:

  1. assign赋值新列时,一般用新列名=表达式的形式,其中新列名为变量的形式,所以不加引号(加引号时意味着是字符串);
  2. assign返回创建了新列的dataframe,所以需要用新的dataframe对象接收返回值;
  3. assign不仅可用于创建新的列,也可用于更新已有列,此时创建的新列会覆盖原有列。

02 eval

实际上,eval是一个Python基础函数,用于执行字符串形式的计算表达式,例如以下简单实例:

图片

那么,eval作为pandas.dataframe数据结构的一个接口,执行功能应该也与执行计算有关。另一方面,pandas中实际上是内置了大量的SQL类语法(包括下面要介绍的query也是),而eval的功能正是执行类似SQL语法中的计算,对已知列执行一定的计算时可用eval完成。例如,仍以前述由A和B列产生C列为例,应用eval的方法为:

图片

了解SQL语法的都知道可用@前缀修饰自定义变量,这一用法在这里的eval中也得以保留,此时可非常方便的引用外部变量。当然,eval中的计算表达式本身属于字符串形式,所以自然也可以用Python的通用字符串引用方法。如下图所示。

图片

注意事项:

  1. eval支持接收一个inplace参数控制原地创建新变量或者返回新的dataframe;也支持仅用表达式而不设置新变量名,此时返回数据为series格式,如下图所示;
  2. eval表达式中也支持调用函数执行复杂计算。

图片

03 query

这应该是最近使用最为频繁的一个接口了,pandas中虽然也提供了多种数据筛选方式,例如loc中增加表达式、或者直接用df[df[]……]等等,但总觉得用起来不够优雅,尤其是要写两遍df以及[]等等,此时如果灵活运用query函数,那么会便捷不少。尤其是query也是类似于SQL中where关键字的语法逻辑,用起来会很顺滑。

图片

例如对于以上dataframe,需要根据不同场景查询满足条件的记录,调用query的实现方式为:

图片

当然,之所以说query中支持类似SQL的语法,是因为其也有两个SQL中标志性的设计,其一是@引用自定义外部变量,其二是对于特殊的列名(例如包含空格的字符)可以用反引号``加以修饰引用。例如,下述例子中C C列中有个空格,直接用于字符串表达式会存在报错,此时可使用反引号加以修饰,同时查询条件中应用了@修饰符引用外部变量。当然,与eval中类似,这里当然也可以用f字符串修饰引用。

图片

注意事项:

  1. query中也支持inplace参数,控制是否将查询过滤条件作用于dataframe本身;
  2. 与eval类似,query中也支持引用外部函数。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8588

    浏览量

    151095
  • 字符串
    +关注

    关注

    1

    文章

    579

    浏览量

    20511
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62587
收藏 人收藏

    评论

    相关推荐

    谁会用这三个函数啊(数学类的)

    三个函数分别为pow();平方函数sqrt();开方函数acos();反余弦函数三个
    发表于 05-31 13:49

    在PyODPS DataFrame自定义函数中使用pandas、scipy和scikit-learn

    的,MaxCompute 的 Python 环境只包含了 numpy 这一方包,用户常常问的问题是,如何在自定义函数里使用 pandas、scipy 或者 scikit-lear
    发表于 05-17 19:48

    Pandas中的四种绘图函数

    数据可视化():Pandas中的绘图函数
    发表于 09-04 09:04

    pandas是什么

    由若干云滴组成。其中每个云滴是确定的点,构成一负责不确定的云。对于一云的描述饱含三个元素,记作:(Ex,En,He)。基本概念:Ex,云滴在论域空间的期望。En,熵。用来表示云团的不确定性程度。...
    发表于 08-17 06:58

    LabVIEW的三个实例资料免费下载

    本文档的主要内容详细介绍的是LabVIEW的三个实例资料免费下载包括了:函数发生器,频谱分析,示波器和滤波器。
    发表于 11-04 08:00 0次下载
    LabVIEW的<b class='flag-5'>三个</b>实例资料免费下载

    pandas的快速入门介绍

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们
    发表于 06-03 08:00 0次下载
    <b class='flag-5'>pandas</b>的快速入门<b class='flag-5'>介绍</b>

    技嘉 RTX 3060 Ti:三个HDMI、三个DisplayPort、 8+6针辅助供电接口

    是配备了六输出接口,包括三个HDMI、三个DisplayPort,相比之下公版和几乎所有非公版都是一HDMI、
    的头像 发表于 11-24 09:38 9670次阅读

    从Excel到Python-最常用的36Pandas函数

    本文涉及pandas最常用的36函数,通过这些函数介绍如何完成数据生成和导入、数据清洗、预处理,以及最常见的数据分类,数据筛选,分类...
    的头像 发表于 12-10 21:31 689次阅读

    盘点Pandas的100常用函数

    经过一段时间的整理,本期将分享我认为比较常规的100实用函数,这些函数大致可以分为六类,分别是统计汇总函数、数据清洗函数、数据筛选、绘图与
    的头像 发表于 04-01 09:52 2843次阅读
    盘点<b class='flag-5'>Pandas</b>的100<b class='flag-5'>个</b>常用<b class='flag-5'>函数</b>

    解读12 种 Numpy 和 Pandas 高效函数技巧

    本文分享给大家 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷。最后,读者也可以在 GitHub 项目中找到本文所用代码的 Jupyter Notebook
    的头像 发表于 06-29 17:05 1500次阅读

    函数接口的应用知识点

    概述 函数接口将分为三个篇章来为大家介绍: (应用篇一)(1)函数接口的来源,(2)Lamb
    的头像 发表于 10-13 11:32 634次阅读
    <b class='flag-5'>函数</b>式<b class='flag-5'>接口</b>的应用知识点

    盘点66Pandas函数合集

    今天我们重新盘点66Pandas函数合集,包括数据预览、数值数据操作、文本数据操作、行/列操作等等,涉及“ 数据清洗 ”的方方面面。 Pandas 是基于NumPy的一种工具,该工具
    的头像 发表于 10-30 09:58 1422次阅读
    盘点66<b class='flag-5'>个</b><b class='flag-5'>Pandas</b><b class='flag-5'>函数</b>合集

    pandas中合并数据的5函数

    今天借着这个机会,就为大家盘点一下pandas中合并数据的5函数。 join join是基于索引的横向拼接,如果索引一致,直接横向拼接。如果索引不一致,则会用Nan值填充。 索引一致 x
    的头像 发表于 10-31 11:11 761次阅读
    <b class='flag-5'>pandas</b>中合并数据的5<b class='flag-5'>个</b><b class='flag-5'>函数</b>

    sumif函数三个条件怎么填

    函数包含三个条件,我们可以使用SUMIF函数的数组形式来完成。 首先,让我们了解一下SUMIF函数的基本结构: SUMIF(range, criteria, [sum_range])
    的头像 发表于 11-30 16:38 5391次阅读

    if函数三个条件怎么填

    IF函数是Excel中最常用的函数之一,它根据一逻辑条件的返回结果来决定应该执行哪一动作。在Excel中使用IF函数可以实现复杂的逻辑判
    的头像 发表于 12-03 10:28 3512次阅读