> 백엔드 개발 > 파이썬 튜토리얼 > Pandas DataFrames에서 여러 목록 열을 효율적으로 중첩 해제하는 방법은 무엇입니까?

Pandas DataFrames에서 여러 목록 열을 효율적으로 중첩 해제하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-17 16:01:02
원래의
375명이 탐색했습니다.

How to Efficiently Unnest Multiple List Columns in Pandas DataFrames?

Pandas DataFrame에서 여러 목록 열을 효율적으로 중첩 해제

대형 Pandas DataFrame에서 여러 목록 열을 중첩 해제(폭발이라고도 함)하는 것은 계산 집약적인 작업일 수 있으며, 특히 데이터 세트 크기가 상당합니다. 이 문제를 해결하기 위해 우리는 다양한 Pandas 버전에 맞는 두 가지 효율적인 방법을 탐색합니다.

Pandas >= 1.3

Pandas 버전 1.3 이상의 경우 DataFrame.explode 메서드는 간단한 방법을 제공합니다. 여러 열을 동시에 분해합니다. 이 방법을 사용하려면 선택한 열의 모든 값에 동일한 크기의 목록이 있어야 합니다. 아래와 같이 열 이름을 분해 메소드에 전달하기만 하면 됩니다.

df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
로그인 후 복사

Pandas >= 0.25

이전 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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