Python pandas.DataFrame.eval函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.eval方法的使用。

DataFrame.eval(self,expr,inplace = False,** kwargs )                  [源代码]

评估描述DataFrame列上的操作的字符串。

仅在列上操作,而不在特定的行或元素上操作。这使 eval可以运行任意代码,如果将用户输入传递给此函数,可能会使您容易受到代码注入的攻击。

参数

expr : str

要评估的表达式字符串。

inplace : bool,默认为False

如果表达式包含一个赋值,则是否就地执行操作并更改现有的DataFrame。否则,将返回一个新的DataFrame

0.18.0版的新功能。

kwargs : dict

有关eval()接受的关键字参数的完整详细信息, 请参见文档query()

返回值

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


推荐阅读
cjavapy编程之路首页