목록 유사 열 폭발: 데이터 프레임 확장 가이드
문제:
In Pandas 데이터프레임의 일부 셀에는 여러 값 목록이 포함될 수 있습니다. 목표는 각 목록 요소가 별도의 행을 차지하고 다른 열의 값은 유지되도록 데이터프레임을 변환하는 것입니다.
해결책:
방법 1: 반복()
Pandas 0.25 이전에는 반복() 메소드는 목록 열을 분해하는 데 일반적으로 사용되었습니다.
import pandas as pd import numpy as np df = pd.DataFrame( {'trial_num': [1, 2, 3, 1, 2, 3], 'subject': [1, 1, 1, 2, 2, 2], 'samples': [list(np.random.randn(3).round(2)) for i in range(6)] } ) # Expand 'samples' column into separate rows using repeat() df_exploded = df.assign( samples=df['samples'].str.join(',').str.split(',') ).explode('samples') df_exploded = df_exploded.reset_index(drop=True) # Add sample_num column to track list element order df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
방법 2: 분해() (Pandas >= 0.25)
이 출시되면서 Pandas 0.25, .explode() 메소드는 우아한 솔루션:
df.explode('samples').reset_index(drop=True)
이 방법은 빈 목록을 자동으로 처리하고 NaN을 보존하여 포괄적인 변환을 보장합니다.
참고:
위 내용은 Pandas DataFrames에서 목록형 열을 효과적으로 확장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!