>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrames에서 목록형 열을 효과적으로 확장하는 방법은 무엇입니까?

Pandas DataFrames에서 목록형 열을 효과적으로 확장하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-27 15:44:11892검색

How to Effectively Explode List-Like Columns in Pandas DataFrames?

목록 유사 열 폭발: 데이터 프레임 확장 가이드

문제:

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을 보존하여 포괄적인 변환을 보장합니다.

참고:

  • 반복 기반 방법은 폭발하는 문자열 열을 처리할 수 있지만 구분 기호로 분할해야 합니다.
  • Explode() 메소드는 한 번에 하나의 열을 분해합니다.
  • 분해된 데이터 프레임은 고유한 인덱스를 설정하고 목록 요소의 번호를 다시 매기기 위해 추가 처리가 필요할 수 있습니다.

위 내용은 Pandas DataFrames에서 목록형 열을 효과적으로 확장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.