> 백엔드 개발 > 파이썬 튜토리얼 > 언제 Pandas `apply()`를 사용해야 하거나 사용하지 말아야 합니까?

언제 Pandas `apply()`를 사용해야 하거나 사용하지 말아야 합니까?

Patricia Arquette
풀어 주다: 2024-12-27 05:33:13
원래의
578명이 탐색했습니다.

When Should (and Shouldn't) You Use Pandas `apply()`?

언제 코드에서 pandas apply()를 사용하지 않아야 합니까?

정의

pandas.apply()는 pandas의 고급 함수로, DataFrame 또는 Series에 대한 사용자 정의 함수입니다. 객체의 각 행이나 열을 반복하고, 함수를 적용하고, 변환된 값이 포함된 새 객체를 반환합니다.

pandas.apply() 사용을 피해야 하는 경우

  • 동일한 작업을 수행할 수 있는 보다 효율적인 벡터화된 팬더 기능이 있을 때.
  • 원하는 기능이 있을 때 적용에는 부작용(예: 전역 변수 수정)이 있습니다.
  • 대규모 데이터 세트를 처리할 때는 성능이 중요한 문제입니다.

pandas.apply를 피하는 이유( )

  • 공연 오버헤드: apply()는 데이터를 반복하므로 대규모 데이터세트의 경우 속도가 느려질 수 있습니다.
  • 메모리 오버헤드: apply()는 메모리 문제로 이어질 수 있는 새 객체를 생성합니다. .
  • 부작용: apply()는 전역 변수나 객체를 수정하는 함수를 처리할 수 없습니다.

pandas.apply()의 대안

  • 벡터화된 함수: pandas는 다음과 같은 다양한 최적화된 벡터화된 함수를 제공합니다. Series 및 DataFrames에서 일반적인 작업을 수행합니다.
  • 사용자 정의 Cython 함수: 벡터화된 함수로 수행할 수 없는 복잡한 변환의 경우 사용자 정의 Cython 함수를 작성하여 더 나은 성능을 얻을 수 있습니다.
  • 목록 comprehensions: List comprehensions을 사용하여 요소별 작업을 수행할 수 있습니다.

pandas.apply()를 사용하는 경우

  • 적절한 벡터화된 대안이 없을 때 최후의 수단으로 사용하세요.
  • 복잡한 함수나 사용자 정의 함수 등 쉽게 벡터화할 수 없는 함수의 경우.
  • 수반되는 작업의 경우 데이터 값을 기반으로 조건부로 함수를 적용합니다.

주의 사항

  • apply()는 첫 번째 행(또는 열)에서 두 번 작동하여 감지합니다. 부작용.
  • apply()의 성능은 사용하는 함수 유형에 따라 달라질 수 있습니다. 적용하세요.

  • apply()와 함께 사용되는 사용자 정의 기능을 가속화하려면 numba.Vectorize 사용을 고려하세요.
  • 대안 탐색 벡터화된 함수, Cython 또는 목록 사용과 같이 apply()의 필요성을 줄이는 접근 방식
  • 프로파일링 도구를 사용하여 병목 현상을 식별하고 Apply()가 코드에서 중요한 성능 문제인지 확인하세요.

위 내용은 언제 Pandas `apply()`를 사용해야 하거나 사용하지 말아야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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