當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask.dataframe.DataFrame.eval用法及代碼示例

用法:

DataFrame.eval(expr, inplace=None, **kwargs)

評估說明 DataFrame 列上的操作的字符串。

此文檔字符串是從 pandas.core.frame DataFrame.eval 複製的。

可能存在與 Dask 版本的一些不一致之處。

僅對列進行操作,而不對特定的行或元素進行操作。這允許 eval 運行任意代碼,如果您將用戶輸入傳遞給此函數,這可能會使您容易受到代碼注入的影響。

參數

exprstr

要評估的表達式字符串。

inplace布爾值,默認為 False

如果表達式包含賦值,是否就地執行操作並改變現有的DataFrame,否則返回新的DataFrame。

**kwargs

有關 query() 接受的關鍵字參數的完整詳細信息,請參閱 eval() 的文檔。

返回

ndarray、標量、pandas 對象或無

如果 inplace=True ,則為評估結果或 None 。

注意

有關更多詳細信息,請參閱eval() 的 API 文檔。有關詳細示例,請參閱使用 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

可以使用 multi-line 表達式分配多個列:

>>> 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

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.DataFrame.eval。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。