>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrames 내에서 산술 표현식을 어떻게 동적으로 평가할 수 있나요?

Pandas DataFrames 내에서 산술 표현식을 어떻게 동적으로 평가할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-17 12:37:02852검색

How can I dynamically evaluate arithmetic expressions within Pandas DataFrames?

Pandas를 사용하여 수식에서 표현식을 동적으로 평가

문제:

다음을 사용하여 산술 표현식을 평가합니다. pd.eval 변수, 연산자 우선 순위 및 데이터프레임의 복잡한 구조.

답변:

1. pd.eval 사용

pd.eval(
    "df1.A + (df1.B * x)",
    local_dict={"x": 5},
    target=df2,
    parser="python",
    engine="numexpr",
)

인수:

  • 표현식: 문자열로 평가할 수식.
  • local_dict: 변수가 포함된 사전 전역 네임스페이스에 정의되지 않았습니다.
  • target: 결과를 ​​할당할 데이터 프레임입니다.
  • parser: 표현식(pandas 또는 python).
  • engine: 다음 작업에 사용되는 백엔드를 지정합니다. 표현식을 평가합니다(numexpr 또는 python).

2. df.eval 사용

df1.eval(
    "A + (B * @x)",
    target=df2,
    parser="python",
    engine="numexpr",
)

인수:

  • df: 표현식이 평가되는 데이터 프레임.
  • expression: 문자열로 평가할 수식.
  • target: 평가할 데이터 프레임 결과를 할당합니다.
  • parser: 표현식을 구문 분석하는 데 사용되는 파서를 지정합니다(pandas 또는 python).
  • engine: 표현식을 평가하는 데 사용되는 백엔드를 지정합니다(numexpr 또는 python).

3. pd.eval과 df.eval의 차이점

  • pd.eval은 모든 객체에 대한 표현식을 평가하는 반면, df.eval은 특히 데이터 프레임에 대한 표현식을 평가합니다.
  • df.eval에는 혼동을 피하기 위해 열 이름 앞에 at 기호(@)를 붙이는 반면, pd.eval은 그렇지 않습니다.
  • df.eval은 pd.eval은 할당으로 여러 줄 표현식을 처리할 수 없지만 pd.eval은 처리할 수 없습니다.

추가 참고 사항:

  • 표현식을 큰따옴표로 묶어야 합니다.
  • x = 5는 전역 변수 x에 값 5를 할당합니다. 네임스페이스.
  • parser='python'은 Python의 연산자 우선 순위 규칙과 복잡한 표현식을 처리할 때 권장됩니다.
  • target=df2는 결과가 지정된 데이터 프레임에 할당되도록 합니다.
  • engine='numexpr'은 성능 향상을 위해 최적화된 numexpr 엔진을 활용합니다.
  • inplace=True를 사용할 수 있습니다. 원본 데이터프레임을 수정합니다.
  • df.query는 지정된 기준을 충족하는 행을 반환하는 조건식에도 사용할 수 있습니다.

위 내용은 Pandas DataFrames 내에서 산술 표현식을 어떻게 동적으로 평가할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.