ホームページ >バックエンド開発 >Python チュートリアル >Pandas で式を動的に評価するにはどうすればよいですか?
パフォーマンスの引数
次の引数を使用して、pd.eval のパフォーマンスを最適化できます:# Import necessary libraries import pandas as pd import numpy as np # Create sample DataFrames 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')) # Evaluate expression using a variable x = 5 result = pd.eval("df1.A + (df1.B * x)") # Alternatively, assign the result to a new column pd.eval("df2['D'] = df1.A + (df1.B * x)")
engine='numexpr'
: 高度に最適化された numexpr を使用します。 Engine.df3 = pd.DataFrame(columns=list('FBGH'), index=df1.index) pd.eval("df3['B'] = df1.A + df2.A", target=df3) # In-place modification pd.eval("df2.B = df1.A + df2.A", target=df2, inplace=True)df.query()との比較 pd.eval は式の評価に適していますが、df.query() は条件分岐の場合により簡潔で効率的です。ブール式に基づいて DataFrame をフィルタリングするためのクエリ。
# Evaluate expression in df1 result = df1.eval("A + B") # Perform variable substitution df1.eval("A > @x", local_dict={'x': 5})
以上がPandas で式を動的に評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。