猿问

调用 round(), ceiling(), floor(), min(), max()

正如标题所说,有没有办法支持熊猫评估中的圆形,天花板,最小值,最大值,地板功能。


数据帧:


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. 我意识到有关使用“eval”函数和进行必要测量的问题。


大话西游666
浏览 209回答 3
3回答

HUWWW

你不能DataFrame.eval仅支持一组有限的数学运算除左移位 (<<) 和右移位 (>>) 运算符外的算术运算,例如,df + 2 * pi / s ** 4 % 42 - the_golden_ratio数学函数:sin,cos,exp,log,expm1,log1p,sqrt,sinh,cosh,tanh,arcsin,arccos,arctan,arccosh,arcsinh,arctanh,abs,arctan2和log10。如果它不在该列表中,则不能将其称为“数学函数以外的函数调用[不允许语法]”话虽如此,也许可以在更基本的操作方面实现其中一些功能。在这里,我实现了一个等效于&nbsp;np.sign&nbsp;的&nbsp;eval。但是IMO混淆了操作太多,并不是很有用,所以真的你需要远离eval

料青山看我应如是

在“py_expression_eval”库的帮助下,我能够在用户定义的函数中完成算术运算。from py_expression_eval import Parserparser = Parser()dct = {'Q1':df['Q1'],'Q2':df['Q2'],'max':max1,'round':getround}df['check']=parser.parse('round(Q1/Q2)').evaluate(dct)库源:https://github.com/Axiacore/py-expression-eval希望这有助于他人。

慕田峪4524236

迟到的答案,但你可以做,和你想要的方式。如果你将后端引擎设置为Python(尽管我认为它相当慢)。似乎至少从Pandas v1.0开始就已经存在了。roundminmaxevaldf.eval('TTR = TT.round(2)', engine='python', inplace=True)df.eval('TT_min = TT.min()', engine='python', inplace=True)df.eval('TT_max = TT.max()', engine='python', inplace=True)df对于 和 操作,您必须弄清楚其他方法(例如,使用 )。floorceilapply
随时随地看视频慕课网APP

相关分类

Python
我要回答