pandas.DataFrame.eval#
- DataFrame.eval(expr, inplace=False, **kwargs)[源代码]#
计算描述DataFrame列上的操作的字符串。
仅对列操作,而不对特定行或元素进行操作。这使得 eval 运行任意代码,如果您将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。
- 参数
- 退货
- Ndarray、标量、Pandas对象或无
如果是,则返回评估结果或无
inplace=True
。
参见
DataFrame.query
计算布尔表达式以查询框架的列。
DataFrame.assign
可以计算表达式或函数以为列创建新值。
eval
使用各种后端将Python表达式作为字符串进行求值。
注意事项
有关更多详细信息,请参阅
eval()
。有关详细示例,请参见 enhancing performance with eval 。示例
>>> df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 0, -2)}) >>> df A B 0 1 10 1 2 8 2 3 6 3 4 4 4 5 2 >>> df.eval('A + B') 0 11 1 10 2 9 3 8 4 7 dtype: int64
允许赋值,但默认情况下不修改原始DataFrame。
>>> df.eval('C = A + B') A B C 0 1 10 11 1 2 8 10 2 3 6 9 3 4 4 8 4 5 2 7 >>> df 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 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 ... ''' ... ) 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