为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

大话西游666 2022-09-06 21:09:23
正如标题所说,有没有办法支持熊猫评估中的圆形,天花板,最小值,最大值,地板功能。数据帧:import pandas as pdimport numexpr as neop_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”,看看我是否可以定义自定义函数并调用它们,但它不起作用。注意:这些函数内的算术运算是必要的(即总和,乘法,两列的div)。我意识到有关使用“eval”函数和进行必要测量的问题。
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

你不能

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。

如果它不在该列表中,则不能将其称为“数学函数以外的函数调用[不允许语法]”


话虽如此,也许可以在更基本的操作方面实现其中一些功能。在这里,我实现了一个等效于 np.sign 的 eval。但是IMO混淆了操作太多,并不是很有用,所以真的你需要远离eval


查看完整回答
反对 回复 2022-09-06
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

在“py_expression_eval”库的帮助下,我能够在用户定义的函数中完成算术运算。


from py_expression_eval import Parser

parser = 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


希望这有助于他人。


查看完整回答
反对 回复 2022-09-06
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

迟到的答案,但你可以做,和你想要的方式。如果你将后端引擎设置为Python(尽管我认为它相当慢)。似乎至少从Pandas v1.0开始就已经存在了。roundminmaxeval


df.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


查看完整回答
反对 回复 2022-09-06
  • 3 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信