Pandas의 수식에서 표현식을 동적으로 평가
pd.eval을 사용하여 하나 이상의 데이터 프레임 열에 대한 산술 표현식을 평가하는 것은 특히 자동화할 때 일반적인 작업입니다. 워크플로우. 다음 코드 조각을 고려하세요.
`x = 5
df2['D'] = df1['A'] (df1['B'] * x)``
이 코드는 df1의 열 A와 B에 대한 연산을 수행하고 그 결과에 변수 x를 곱하여 df2에 새 열 D를 추가합니다. 목표는 표현식을 문자열로 실행하는 pd.eval의 기능을 활용하여 이 데이터 조작을 동적으로 반복하는 것입니다.
먼저 입력 DataFrames를 소개하겠습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!