pandas.DataFrame.eval#
- DataFrame.eval(expr, *, inplace=False, **kwargs)[源代码]#
计算描述 DataFrame 列操作的字符串。
仅操作列,不操作特定行或元素。这允许 eval 运行任意代码,如果您将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。
- Parameters:
- Returns:
- ndarray、标量、pandas 对象或 None
评估结果,如果
inplace=True则为 None。
参见
DataFrame.query评估一个布尔表达式以查询 DataFrame 的列。
DataFrame.assign可以评估表达式或函数以创建列的新值。
eval使用各种后端评估字符串格式的 Python 表达式。
Notes
有关详细信息,请参阅
eval()的 API 文档。有关详细示例,请参阅 enhancing performance with eval 。Examples
>>> 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
可以使用多行表达式为多个列赋值:
>>> 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