pandas DataFrames에서는 목록이 포함된 열을 여러 행으로 "중첩 해제"하거나 "폭발"해야 하는 경우가 있습니다. 그러나 특히 대규모 데이터세트의 경우 계산 비용이 많이 드는 작업일 수 있습니다.
pandas 버전 1.3 이상에는 다음과 같은 내장 함수가 있습니다. 여러 열의 중첩을 동시에 해제할 수 있는 DataFrame.explode 이 함수를 사용하려면 모든 목록 열의 길이가 동일해야 합니다. 사용 방법:
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
이전 버전의 pandas의 경우 약간 더 복잡한 접근 방식이 필요합니다.
df.set_index(['A']).apply(pd.Series.explode).reset_index()
두 방법 모두 DataFrame.explode보다 약간 빠른 set_index 및Explode를 사용하여 효율적인 솔루션을 제공합니다. 다음 표는 성능 비교를 보여줍니다.
Method | Time (seconds) |
---|---|
DataFrame.explode | 0.00259 |
Set index and explode | 0.00127 |
Stacking approach | 0.120 |
이 질문은 처음에 중복으로 표시되었지만 특히 대규모를 처리할 수 있는 효율적인 방법의 필요성을 강조합니다. 데이터 세트. 중복된 질문에 대한 답변이 이 요구 사항을 적절하게 충족하지 못했습니다.
위 내용은 Pandas DataFrame에서 여러 목록 열을 효율적으로 중첩 해제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!