대형 Pandas DataFrame에서 여러 목록 열을 중첩 해제(폭발이라고도 함)하는 것은 계산 집약적인 작업일 수 있으며, 특히 데이터 세트 크기가 상당합니다. 이 문제를 해결하기 위해 우리는 다양한 Pandas 버전에 맞는 두 가지 효율적인 방법을 탐색합니다.
Pandas 버전 1.3 이상의 경우 DataFrame.explode 메서드는 간단한 방법을 제공합니다. 여러 열을 동시에 분해합니다. 이 방법을 사용하려면 선택한 열의 모든 값에 동일한 크기의 목록이 있어야 합니다. 아래와 같이 열 이름을 분해 메소드에 전달하기만 하면 됩니다.
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
이전 Pandas 버전의 경우 각 열에 Series.explode를 사용할 수 있습니다. 먼저 분해해서는 안되는 모든 열을 인덱스로 설정한 후 작업 후 인덱스를 재설정합니다.
df.set_index(['A']).apply(pd.Series.explode).reset_index()
두 가지 방법 모두 다음과 같이 효율적인 성능을 제공합니다. 대규모 데이터세트의 타이밍:
%timeit df2.explode(['B', 'C', 'D', 'E']).reset_index(drop=True) %timeit df2.set_index(['A']).apply(pd.Series.explode).reset_index() # Pandas >= 1.3 (fastest) 2.59 ms ± 112 µs per loop # Pandas >= 0.25 1.27 ms ± 239 µs per loop
이러한 효율적인 방법을 활용하면 Pandas에서 여러 목록 열의 중첩을 효과적으로 해제할 수 있습니다. 모든 크기의 DataFrame으로 원활한 데이터 분석 및 조작이 가능합니다.
위 내용은 Pandas DataFrames에서 여러 목록 열을 효율적으로 중첩 해제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!