`pd.eval`을 사용하여 Pandas에서 산술 표현식을 평가하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-15 08:13:02
원래의
162명이 탐색했습니다.

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

Pandas의 수식에서 표현식을 동적으로 평가

도전

다음과 같이 하나 이상의 DataFrame 열에서 pd.eval을 사용하여 산술 표현식을 평가합니다. 수행원 예:

x = 5
df2['D'] = df1['A'] + (df1['B'] * x)
로그인 후 복사

pd.eval 함수

pd.eval, df.eval 및 df.query는 Pandas에서 표현식을 평가하기 위해 밀접하게 관련된 세 가지 함수입니다. 각각 미묘한 변형이 있지만 모두 비슷한 구문 규칙과 기능 지원을 따릅니다.

지원되는 기능:

  • 산술 연산
  • 비교 연산
  • 부울 연산
  • 목록 및 튜플 리터럴
  • 속성 액세스
  • 하위 첨자 표현식
  • 간단한 변수 평가

구문 규칙:

표현식은 다음과 같이 문자열로 전달되어야 합니다. 지침:

  • 전체 표현식은 문자열입니다
  • 전역 네임스페이스의 변수는 이름으로 참조됩니다.
  • 특정 열은 속성 접근자를 통해 액세스됩니다
  • 괄호를 사용하여 연산자 우선 순위를 무시할 수 있습니다

키 차이점

pd.eval과 df.eval

  • 열 액세스: pd.eval에는 DataFrame 인덱싱이 포함된 열 이름이 필요하지만 df.eval은 직접 액세스를 허용합니다. 열 이름으로.
  • DataFrames를 사용한 표현식: pd.eval df.eval은 특정 DataFrame에서 작동하는 반면, df.eval은 특정 DataFrame에서 작동합니다.

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`을 사용하여 Pandas에서 산술 표현식을 평가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿