DataFrame.eval(self,expr,inplace = False,** kwargs ) [源代码]
评估描述DataFrame列上的操作的字符串。
仅在列上操作,而不在特定的行或元素上操作。这使 eval可以运行任意代码,如果将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。
参数: | expr : 要评估的表达式字符串。 inplace : 如果表达式包含一个赋值,则是否就地执行操作并更改现有的DataFrame。否则,将返回一个新的 0.18.0版的新功能。 kwargs : |
返回值: | ndarray,标量或pandas对象 评估结果。 |
Notes
有关更多详细信息,请参见的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
使用inplace=True修改原来的数据帧
>>> 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