pd.eval을 사용하여 변수 대체 및 복합 연산을 포함하여 DataFrames에서 동적 작업을 수행하려고 합니다. .
1. 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)")
다음 인수를 사용하여 pd.eval 성능을 최적화할 수 있습니다.
대상 인수를 사용하여 pd.eval의 결과를 DataFrame에 직접 할당할 수 있습니다. .
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)
# Evaluate expression in df1 result = df1.eval("A + B") # Perform variable substitution df1.eval("A > @x", local_dict={'x': 5})
pd.eval은 표현식 평가에 적합하지만 df.query()는 조건문 평가에 더 간결하고 효율적입니다. 부울 표현식을 기반으로 DataFrame을 필터링하므로 쿼리가 가능합니다.
# Query df1 df1.query("A > B")
위 내용은 Pandas에서 표현식을 어떻게 동적으로 평가할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!