「pd.eval」を使用してパンダの算術式を評価するにはどうすればよいですか?

DDD
リリース: 2024-11-15 08:13:02
オリジナル
161 人が閲覧しました

How to Evaluate Arithmetic Expressions in Pandas Using `pd.eval`?

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

チャレンジ

に示すように、1 つ以上の DataFrame 列で pd.eval を使用して算術式を評価します。次の例:

x = 5
df2['D'] = df1['A'] + (df1['B'] * x)
ログイン後にコピー

pd.eval 関数

pd.eval、df.eval、および df.query は、Pandas の式を評価するための 3 つの密接に関連した関数です。それぞれに微妙な違いがありますが、すべて同様の構文規則と機能サポートに従います。

サポートされる機能:

  • 算術演算
  • 比較演算
  • ブール演算
  • リストおよびタプルリテラル
  • 属性アクセス
  • 添字式
  • 単純な変数評価

構文規則:

式は次のガイドラインに従って文字列として渡す必要があります:

  • 式全体は文字列です
  • グローバル名前空間内の変数は名前によって参照されます
  • 属性アクセサーを通じて特定の列にアクセスします
  • 演算子の優先順位をオーバーライドするためにかっこを使用できます

主な違い

pd.eval と df.eval

  • 列アクセス: pd.eval は DataFrame インデックス付きの列名を必要としますが、df.eval は列への直接アクセスを許可しますnames.
  • DataFrame を使用した式: pd.eval はデータフレーム全体の操作に適していますが、df.eval は特定の DataFrames で操作します。

df.eval対 df.query

  • クエリと評価: df.query は条件式を評価し、一致する行を返します。 df.eval は、式自体の結果を返します。
  • 利便性: df.query は、クエリ目的では一般的により簡潔です。

解決策

pd.eval を使用して元のチャレンジを解決するには:

x = 5
pd.eval("df1.A + (df1.B * x)")
ログイン後にコピー

再割り当て

式の結果を df2 に割り当てるには、ターゲット パラメーターを使用します:

pd.eval("D = df1.A + (df1.B * x)", target=df2)
ログイン後にコピー

式内で引数を渡す

式文字列内の引数として x を渡すには、@ 記号を使用します:

pd.eval("df1.A + (df1.B * @x)", local_dict={'x': x})
ログイン後にコピー

以上が「pd.eval」を使用してパンダの算術式を評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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