Pri*_*ish 5 python eval pandas
正如标题所说,有没有办法在 pandas eval 中支持 round、ceiling、min、max、floor 函数。
数据框:
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)
Run Code Online (Sandbox Code Playgroud)
abs() 和 sqrt() 函数与 pandas eval 一起使用。IE
df.eval('TT = abs(sqrt(Q1+Q2)-Q2)',inplace=True)
df
Run Code Online (Sandbox Code Playgroud)
谁能建议如何访问 eval 中的其余函数?我还尝试了 eval 中的“local_dict”,看看是否可以定义自定义函数并调用它们,但它不起作用。
笔记:
在“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)
Run Code Online (Sandbox Code Playgroud)
库来源: https: //github.com/Axiacore/py-expression-eval
希望这对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
4311 次 |
| 最近记录: |