> 백엔드 개발 > 파이썬 튜토리얼 > 많은 Pandas DataFrame을 연결하는 것이 기하급수적으로 느린 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?

많은 Pandas DataFrame을 연결하는 것이 기하급수적으로 느린 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-20 03:38:13
원래의
774명이 탐색했습니다.

Why is Concatenating Many Pandas DataFrames Exponentially Slow, and How Can I Avoid It?

DataFrame 연결이 기하급수적으로 느림

대규모 데이터 세트로 작업할 때는 효율적인 처리를 위해 데이터를 더 작은 덩어리로 분할하는 것이 일반적입니다. 그러나 이러한 청크를 다시 연결하는 작업은 청크 수가 증가함에 따라 기하급수적으로 느려질 수 있습니다.

속도 저하 원인

속도 저하의 원인은 pd.concat() 구현됩니다. 루프 내에서 호출되면 각 연결에 대해 새 DataFrame이 생성되어 상당한 데이터 복사가 발생합니다. 이 복사 비용은 반복 횟수에 따라 2차적으로 증가하여 처리 시간이 기하급수적으로 증가합니다.

속도 저하 방지

이러한 성능 병목 현상을 피하려면 for 루프 내에서 pd.concat() 호출을 방지합니다. 대신 청크를 목록에 저장하고 처리 후 한 번에 모두 연결하십시오.

super_x = []
for i, df_chunk in enumerate(df_list):
    [x, y] = preprocess_data(df_chunk)
    super_x.append(x)
super_x = pd.concat(super_x, axis=0)
로그인 후 복사

이 접근 방식을 사용하면 복사가 한 번만 발생하므로 전체 처리 시간이 크게 단축됩니다.

위 내용은 많은 Pandas DataFrame을 연결하는 것이 기하급수적으로 느린 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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