Pandas에서 s.replace와 다른 값 대체 방법 간의 성능 차이 이해
사전을 사용하여 Pandas 시리즈의 값을 바꾸는 것은 일반적인 작업. 그러나 이 작업에 권장되는 방법인 s.replace는 List Comprehension과 같은 대체 방법에 비해 성능이 현저히 느린 경우가 많습니다.
s.replace 속도 저하의 근본 원인
s.replace는 단순한 사전 매핑 이상의 추가 처리를 수행합니다. 더 복잡하고 시간이 많이 걸리는 작업이 필요한 극단적인 경우와 드문 상황을 처리합니다. 특히 s.replace는 사전을 목록으로 변환하고, 중첩된 사전을 확인하고, 목록을 반복하여 키와 값을 별도의 교체 함수에 공급합니다. 이 오버헤드로 인해 프로세스 속도가 크게 느려집니다.
값 교체 최적화
값 교체를 최적화하려면 다음 지침을 따라야 합니다.
벤치마킹
벤치마킹 결과는 다양한 교체 방법 간의 성능 차이를 보여줍니다.
테스트 1 - 전체 지도
%timeit df['A'].replace(d) # 1.98s %timeit df['A'].map(d) # 84.3ms %timeit [d[i] for i in lst] # 134ms
테스트 2 - 부분 지도
%timeit df['A'].replace(d) # 20.1ms %timeit df['A'].map(d).fillna(df['A']).astype(int) # 111ms %timeit [d.get(i, i) for i in lst] # 243ms
이러한 결과는 s.map과 수정된 버전이 s보다 훨씬 빠르게 수행된다는 것을 분명히 나타냅니다. .replace, 특히 계열 값의 상당 부분이 사전 키로 덮여 있는 경우.
위 내용은 사전 기반 값 교체 시 Pandas의 `s.replace`가 느린 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!