maxframe.dataframe.DataFrame.eval#
- DataFrame.eval(expr, inplace=False, **kwargs)#
对描述 DataFrame 列操作的字符串进行求值。
仅对列进行操作,不对特定行或元素进行操作。这使得 eval 可以运行任意代码,如果您将用户输入传递给此函数,可能会导致代码注入漏洞。
- 参数:
- 返回:
求值的结果。
- 返回类型:
ndarray, scalar, or pandas object
参见
DataFrame.query对布尔表达式进行求值,以查询帧的列。
DataFrame.assign可以对表达式或函数进行求值,以为列创建新值。
eval使用各种后端将 Python 表达式作为字符串进行求值。
备注
有关更多详细信息,请参阅
eval()的 API 文档。有关详细示例,请参阅 使用 eval 提高性能。示例
>>> import maxframe.dataframe as md >>> df = md.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)}) >>> df.execute() A B 0 1 10 1 2 8 2 3 6 3 4 4 4 5 2 >>> df.eval('A + B').execute() 0 11 1 10 2 9 3 8 4 7 dtype: int64
允许赋值操作,但默认情况下不会修改原始 DataFrame。
>>> df.eval('C = A + B').execute() A B C 0 1 10 11 1 2 8 10 2 3 6 9 3 4 4 8 4 5 2 7 >>> df.execute() A B 0 1 10 1 2 8 2 3 6 3 4 4 4 5 2
使用
inplace=True修改原始 DataFrame。>>> df.eval('C = A + B', inplace=True) >>> df.execute() A B C 0 1 10 11 1 2 8 10 2 3 6 9 3 4 4 8 4 5 2 7
可以使用多行表达式为多个列赋值:
>>> df.eval(''' ... C = A + B ... D = A - B ... ''').execute() A B C D 0 1 10 11 -9 1 2 8 10 -6 2 3 6 9 -3 3 4 4 8 0 4 5 2 7 3