ホームページ > バックエンド開発 > Python チュートリアル > pd.eval を使用して Pandas の数式から式を動的に評価する方法は?

pd.eval を使用して Pandas の数式から式を動的に評価する方法は?

Barbara Streisand
リリース: 2024-11-25 02:31:13
オリジナル
835 人が閲覧しました

How to Dynamically Evaluate Expressions from Formulas in Pandas using pd.eval?

Pandas の数式から式を動的に評価する

pd.eval を使用した 1 つ以上のデータフレーム列の算術式の評価は、特に自動化する場合に一般的なタスクです。ワークフロー。次のコード スニペットを考えてみましょう:

`x = 5
df2['D'] = df1['A'] (df1['B'] * x)``

このコードは、df1 の列 A と B に対して演算を実行し、その結果に変数 x を乗算することにより、新しい列 D を df2 に追加します。目標は、式を文字列として実行する pd.eval の機能を利用して、このデータ操作を動的に繰り返すことです。

まず、入力 DataFrame を導入しましょう。

import pandas as pd
import numpy as np

np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))

df1

   A  B  C  D
0  5  0  3  3
1  7  9  3  5
2  2  4  7  6
3  8  8  1  6
4  7  7  8  1

df2

   A  B  C  D
0  5  9  8  9
1  4  3  0  3
2  5  0  2  3
3  8  1  3  3
4  3  7  0  1
ログイン後にコピー

次を使用して式を動的に評価します。 pd.eval では、次のコードを使用できます:

result = pd.eval('df1.A (df1.B * x)')

このコード行は、評価された式を含む result と呼ばれる新しい DataFrame を作成します。 eval 関数は、次のような条件付き評価を実行するために使用することもできます。

pd.eval('df1.A > df2.A')

式の結果を割り当てるにはdf2 にするには、次の構文を使用します:

df2['D'] = pd.eval('df1.A (df1.B * x)', target=df2)

式文字列内で引数を渡すには、@ 記号を使用します。

pd.eval('df1.A (df1. B * @x)', local_dict={'x': 5})

パフォーマンスを最大化するには、次の点を考慮してください。引数:

parser='python' は、構文ルールを制御し、Python の演算子の優先順位との一貫性を確保します。
engine='numexpr' は、最適化された numexpr バックエンドを使用して高速に評価します。
これにより、次のことが提供されます。 pd.eval.

を使用して Pandas の数式から式を動的に評価する方法を包括的に理解している。

以上がpd.eval を使用して Pandas の数式から式を動的に評価する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート