在熊猫评估中调用round(),ceiling(),floor(),min(),max()

问题描述 投票:3回答:2

正如标题所说,在熊猫评估中,有没有一种方法可以支持圆形,天花板,最小,最大,地板功能。

DataFrame:

import pandas as pd
import numexpr as ne
op_d = {'ID': [1, 2,3],'V':['F','G','H'],'AAA':[0,1,1],'E':[102014,112019,122017] ,'D':['2019/02/04','2019/02/01','2019/01/01'],'DD':['2019-12-01','2016-05-31','2015-02-15'],'CurrentRate':[7.5,2,2],'NoteRate':[2,3,3],'BBB':[0,00,4],'Q1':[2,8,00],'Q2':[3,5,7],'Q3':[5,6,8]}
df = pd.DataFrame(data=op_d)

abs()和sqrt()函数可与pandas eval一起使用。即

df.eval('TT = abs(sqrt(Q1+Q2)-Q2)',inplace=True)
df

有人可以建议如何访问eval中的其余功能吗?我还在eval中尝试了“ local_dict”,以查看是否可以定义自定义函数并调用它们,但是它不起作用。

注意:

  1. 这些函数中的算术运算是必需的(即两列的和,乘法,div)。
  2. 我知道有关使用“评估”功能和采取必要措施的问题。
python pandas eval
2个回答
0
投票

您不能

[仅DataFrame.eval supports a limited set of math operations

[算术运算,左移(<>)运算符,例如df + 2 * pi / s ** 4 % 42 - the_golden_ratio

数学函数:sin,cos,exp,log,expm1,log1p,sqrt,sinh,cosh,tanh,arcsin,arccos,arctan,arcosh,arcsinh,arctanh,abs,arctan2和log10。

如果不在该列表上,则因为“ 数学函数以外的函数调用[不允许使用语法]”]] >>


话虽如此,可能

可以通过更基本的操作来实现其中一些功能。 Here I've implemented an eval equivalent of np.sign。但是,IMO对操作的混淆程度太大并且不是很有用,因此实际上您需要远离eval

借助于'py_expression_eval'库,我能够在用户定义的函数中计算出算术运算。

np.sign

库来源:eval

希望这对其他人有帮助。


0
投票

借助于'py_expression_eval'库,我能够在用户定义的函数中计算出算术运算。

© www.soinside.com 2019 - 2024. All rights reserved.