Python中的pandas.eval()函数
该方法用于使用各种后端将Python表达式评估为一个字符串。它返回ndarray、数字标量、DataFrame、Series。
语法 :
pandas.eval(expr, parser='pandas', engine=None, truediv=True, local_dict=None, global_dict=None, resolvers=(), level=0, target=None, inplace=False)
参数:
- expr : str或unicode。要评估的表达式。这个字符串不能包含任何 Python
- parser : string, default ‘pandas’, {‘pandas’, ‘python’}.
- engine:字符串或无,默认为’numexpr’,{‘python’, ‘numexpr’}。
- truediv : bool, optional, 是否使用真除法,就像Python >= 3中那样
- level : int, optional, 要遍历并添加到当前作用域的先前堆栈帧的数量。大多数用户不需要改变这个参数。
下面是上述方法的实现和一些例子。
例子1 :
# importing package
import pandas
# evaluate the expressions given
# in form of string
print(pandas.eval("2+3"))
print(pandas.eval("2+3*(5-2)"))
输出 :
5
11
例子2 :
# importing package
import pandas
# creating data
data = pandas.DataFrame({
"Student": ["A", "B", "C", "D"],
"Physics": [89,34,23,56],
"Chemistry": [34,56,98,56],
"Math": [34,94,50,59]
})
# view data
display(data)
# adding new column by existing
# columns evaluation
data['Total']=pandas.eval("data.Physics+data.Chemistry+data.Math")
# view data
display(data)
# adding new column by existing
# columns evaluation
pandas.eval("Avg=data.Total/3",target=data,inplace=True)
# view data
display(data)
输出 :