언제 코드에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!