如何使用'pd.eval”评估 Pandas 中的算术表达式?
根据 Pandas 中的公式动态计算表达式
挑战
在一个或多个 DataFrame 列上使用 pd.eval 计算算术表达式,如以下示例:
x = 5 df2['D'] = df1['A'] + (df1['B'] * x)
pd.eval函数
pd.eval、df.eval 和 df.query 是三个密切相关的函数,用于计算 Pandas 中的表达式。每个都有自己微妙的变化,但它们都遵循相似的语法规则和功能支持。
支持的功能:
- 算术运算
- 比较运算
- 布尔运算
- 列表和元组文字
- 属性访问
- 下标表达式
- 简单变量求值
语法规则:
表达式必须作为字符串传递,具有以下内容准则:
- 整个表达式是一个字符串
- 全局命名空间中的变量通过名称引用
- 通过属性访问器访问特定列
- 括号可用于覆盖运算符优先级
键差异
pd.eval 与 df.eval
- 列访问: pd.eval 需要带有 DataFrame 索引的列名称,而 df.eval 允许直接访问到列名称。
- 表达式DataFrames: pd.eval 更适合数据帧范围的操作,而 df.eval 对特定 DataFrame 进行操作。
df.eval 与 df.query
- 查询与评估: df.query 评估条件表达式并返回匹配的值行。 df.eval 返回表达式本身的结果。
- 方便: df.query 通常对于查询来说更加简洁。
解决方案
使用以下方法解决最初的挑战pd.eval:
x = 5 pd.eval("df1.A + (df1.B * x)")
重新分配
要将表达式的结果分配回 df2,请使用目标参数:
pd.eval("D = df1.A + (df1.B * x)", target=df2)
在表达式内传递参数
要将 x 作为表达式字符串中的参数传递,请使用 @符号:
pd.eval("df1.A + (df1.B * @x)", local_dict={'x': x})
以上是如何使用'pd.eval”评估 Pandas 中的算术表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...

Python3.6环境下加载pickle文件报错:ModuleNotFoundError:Nomodulenamed...

使用Scapy爬虫时管道文件无法写入的原因探讨在学习和使用Scapy爬虫进行数据持久化存储时,可能会遇到管道文�...
