> 백엔드 개발 > 파이썬 튜토리얼 > Pandas의 `apply()` 함수 사용을 언제 피해야 합니까?

Pandas의 `apply()` 함수 사용을 언제 피해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-18 00:18:11
원래의
265명이 탐색했습니다.

When Should I Avoid Using Pandas' `apply()` Function?

Pandas 코드에서 apply()를 사용하지 말아야 할 경우


이 포괄적인 분석에서는 Pandas 코드에서 apply() 함수를 사용할 때의 장단점을 살펴봅니다.

apply() 이해하기 Function

apply()는 DataFrame의 각 행이나 열에 사용자 정의 함수를 적용할 수 있는 편리한 함수입니다. 그러나 여기에는 제한 사항과 잠재적인 성능 문제가 있습니다.


피해야 할 이유 apply()



  • 성능 문제: apply()는 사용자 정의 함수를 반복적으로 적용하여 심각한 성능 병목 현상을 일으킵니다. 벡터화된 대안이나 목록 이해가 일반적으로 더 빠릅니다.

  • 중복 행 또는 열 실행: 어떤 경우에는 apply()가 사용자 정의 함수를 두 번, 한 번 실행하여 부작용을 확인하고 한 번 기능을 적용해 보세요.

  • 간단한 작업의 비효율성: sum() 및 max()와 같은 많은 내장 Pandas 함수는 apply()보다 작업을 훨씬 빠르게 수행합니다. 간단한 작업용입니다.


사용을 고려해야 하는 경우 apply()


apply()는 일반적으로 피해야 하지만, 허용 가능한 옵션이 될 수 있는 특정 상황이 있습니다:



  • DataFrame이 아닌 시리즈에 대해 벡터화된 함수: 함수가 시리즈에 대해 벡터화되지만 그렇지 않은 경우 DataFrames, apply()를 사용하여 여러 열에 함수를 적용할 수 있습니다.

  • 결합된 GroupBy 작업: 단일 GroupBy 작업에서 여러 변환을 결합하려면 적용( )는 GroupBy 개체에서 사용할 수 있습니다.

  • 시리즈를 다음으로 변환 문자열: 놀랍게도 시리즈의 정수를 215 미만의 데이터 크기에 대한 문자열로 변환할 때 apply()가 astype()보다 더 빠를 수 있습니다.

  • 코드 팁 리팩토링


    apply() 사용을 줄이고 코드 성능을 향상하려면 다음 기술을 고려하세요.



    • 벡터화 작업: Pandas 또는 numpy에서 사용할 수 있는 벡터화 함수를 어디서나 사용하세요. 가능합니다.

    • List Comprehensions 활용: 스칼라 연산의 경우 List Comprehension은 apply()보다 더 빠른 대안을 제공합니다.

    • Pandas 내장 기능 활용: sum() 및 max()와 같은 일반적인 작업에 최적화된 Pandas 함수를 활용합니다.
    • 사용자 정의 람다를 드물게 사용: Apply()에서 사용자 정의 람다를 사용하는 경우 이중을 피하기 위해 이해력이나 벡터화된 함수를 나열하는 인수로 사용합니다. 실행.


    이러한 기술을 적용하면 코드 실행 속도가 훨씬 빨라지고 전반적인 성능이 향상됩니다.


    결론< ;/h2>

    apply()는 편리한 기능일 수 있지만 주의해서 사용해야 합니다. 효율적이고 확장 가능한 Pandas 코드를 작성하려면 Apply()의 제한 사항과 성능에 미치는 영향을 이해하는 것이 중요합니다.

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

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