首頁 > 後端開發 > Python教學 > 如何動態評估 Pandas DataFrame 中的算術表達式?

如何動態評估 Pandas DataFrame 中的算術表達式?

Linda Hamilton
發布: 2024-11-17 12:37:02
原創
860 人瀏覽過

How can I dynamically evaluate arithmetic expressions within Pandas DataFrames?

使用Pandas 動態計算公式中的表達式

問題:

問題:

使用以下函數計算算術表達式pd.eval 同時考慮變數、運算子優先權和資料幀的複雜結構。

答:

1。使用 pd.eval

  • 參數:
  • 表達式: 作為字串求值的公式。
  • local_dict: 包含未在全域命名空間中定義的變數的字典。
  • target: 將結果分配給的資料幀。
  • parser: 指定用於解析表達式的解析器(pandas 或 python)。

engine: 指定用於計算表達式的後端(numexpr 或 python) ).

2.使用df.eval

  • 參數:
  • df:正在評估表達式的資料幀。
  • 表達式:作為字串求值的公式。
  • 目標:將結果分配給的資料幀。
解析器:指定用於解析表達式的解析器(pandas 或 python)。

engine:指定用於計算表達式的後端(numexpr 或 python)。

  • 3. pd.eval 和df.eval 之間的差異
  • pd.eval 計算任何物件上的表達式,而df .eval 專門計算資料幀上的表達式。
df.eval 需要在列名前面加上 at 符號 (@) 以避免混淆,而 pd.eval 則不然。

df.eval 可以處理帶有賦值的多行表達式,而 pd.eval 則不能。

  • 附加說明:
  • 確保表達式用雙引號括起來。
  • x = 5 將值5 分配給全域命名空間中的變數x .
  • 在處理Python 的運算子優先權規則和複雜表達式時,建議使用parser='python' 。
  • target=df2 確保將結果指派給指定的資料幀。
  • engine='numexpr' 利用最佳化的 numexpr 引擎來提升效能。
inplace=True 可用於就地修改原始資料幀。 df.query 也可用於條件式,傳回符合指定條件的行。

以上是如何動態評估 Pandas DataFrame 中的算術表達式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板