pandas.DataFrame.eval # 数据框。eval ( expr , * , inplace = False , ** kwargs ) [来源] # 评估描述 DataFrame 列操作的字符串。 仅对列进行操作,而不对特定行或元素进行操作。这允许 eval运行任意代码,如果将用户输入传递给此函数,则可能会使您容易受到代码注入的攻击。 参数: 表达式字符串要计算的表达式字符串。 inplace布尔值,默认 False如果表达式包含赋值,是否就地执行操作并改变现有的 DataFrame。否则,返回一个新的 DataFrame。 **夸格eval()有关 接受的关键字参数的完整详细信息, 请参阅 的文档query()。 返回: ndarray、标量、pandas 对象或 None评估结果或 None if inplace=True。 也可以看看 DataFrame.query计算布尔表达式以查询框架的列。 DataFrame.assign可以计算表达式或函数来为列创建新值。 eval使用各种后端将 Python 表达式作为字符串求值。 笔记 有关更多详细信息,请参阅 的 API 文档eval()。有关详细示例,请参阅使用 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 可以使用多行表达式分配多个列: >>> 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