사전을 사용하여 Pandas 시리즈의 값 대체 성능 향상
사전을 사용하여 Pandas 시리즈의 값을 바꾸는 것은 일반적인 작업입니다. s.replace(d)를 사용하여 값을 바꾸는 것이 권장되지만 간단한 목록 이해를 사용하는 것보다 훨씬 느릴 수 있습니다.
성능 저하의 원인
느린 성능 s.replace(d)는 극단적인 경우와 드문 상황을 처리하는 데서 유래합니다. 여기에는 다음이 포함됩니다.
대체 방법
성능을 향상하려면 다음 방법을 사용하는 것이 좋습니다.
벤치마킹
벤치마크는 s.replace(d)와 s 간의 성능 차이를 보여줍니다. .map(d) 및 목록 이해:
##### Full Map ##### d = {i: i+1 for i in range(1000)} %timeit df['A'].replace(d) # Slow (1.98s) %timeit df['A'].map(d) # Fast (84.3ms) ##### Partial Map ##### d = {i: i+1 for i in range(10)} %timeit df['A'].replace(d) # Intermediate (20.1ms) %timeit df['A'].map(d).fillna(df['A']).astype(int) # Faster (111ms)
이는 전체 또는 부분 매핑에서 s.map(d)가 s.replace(d)보다 일관되게 빠르다는 것을 보여줍니다.
결론
사전 적용 범위의 완전성에 따라 s.map(d) 또는 s.map(d).fillna(s['A']).astype(int) Pandas 시리즈에서 효율적인 값 교체를 위해서는 s.replace(d)보다 선호되어야 합니다.
위 내용은 Pandas 시리즈에서 사전을 사용하여 값을 바꾸는 것이 느린 이유는 무엇이며 성능을 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!