전치라고도 알려진 피벗은 행과 열이 바뀌는 데이터 변환에서 일반적인 작업입니다. 데이터를 보다 적합한 형식으로 재구성하거나 여러 차원에 걸쳐 데이터를 요약하는 보고서를 만드는 등의 작업에 유용할 수 있습니다. Python에서 pandas는 DataFrame을 피벗하는 여러 가지 방법을 제공하며 각 방법에는 고유한 장점과 한계가 있습니다.
기본 피벗의 경우 다음 방법을 사용할 수 있습니다.
pandas.pivot_table: 이 방법은 열을 지정하여 데이터를 피벗하기 위한 유연한 인터페이스를 제공합니다. 행, 열, 값으로 사용됩니다. 평균, 합계, 개수 등과 같은 다양한 집계 함수를 지원합니다.
pandas.DataFrame.groupby pandas.unstack: groupby를 사용하여 원하는 열별로 데이터를 그룹화한 다음 다음을 사용하여 결과 MultiIndex를 언스택합니다. 피벗된 DataFrame을 생성하려면 스택을 해제하세요.
더 복잡한 피벗 작업의 경우 다음 방법을 사용할 수 있습니다.
pandas.DataFrame.set_index pandas.unstack: groupby와 유사하지만 다음과 같은 경우 더 효율적입니다. 고유한 행 집합을 기준으로 피벗하고 columns.
pandas.DataFrame.pivot:ivot_table의 더 간결한 버전이지만 기능이 제한되어 있습니다.
pandas. 교차 분석: 분할표(교차 분석)를 만드는 데 유용합니다. 두 개의 범주형 변수에 걸쳐 데이터를 집계하는 피벗 유형입니다.
pandas.factorize numpy.bincount: 특정 작업에 대해 더 빠를 수 있는 고급 기술입니다. 인수 분해를 사용하여 범주형 값을 고유한 정수로 변환한 다음 bincount를 사용하여 발생 횟수를 계산합니다.
pandas.get_dummies pandas.DataFrame.dot: 더미 변수를 사용하여 교차표를 수행하는 창의적인 방법 .
다음은 몇 가지 예입니다. 이러한 방법을 사용하는 방법:
# Import pandas import pandas as pd # Create a sample DataFrame df = pd.DataFrame({ "key": ["a", "b", "c", "a", "b"], "row": [1, 2, 3, 4, 5], "col": ["col1", "col2", "col3", "col1", "col2"], "val": [10, 20, 30, 40, 50] }) # Pivot using pivot_table pivoted_df = pd.pivot_table( df, index="row", columns="col", values="val", aggfunc='mean', fill_value=0 ) # Pivot using groupby and unstack pivoted_df = df.groupby(['row', 'col'])['val'].mean().unstack(fill_value=0)
피벗된 DataFrame의 다중 인덱스를 평면화하려면 열 유형에 따라 다른 접근 방식을 사용할 수 있습니다.
열이 다음과 같은 경우 문자열:
pivoted_df.columns = pivoted_df.columns.map('|'.join)
열이 튜플인 경우:
pivoted_df.columns = pivoted_df.columns.map('{0[0]}|{0[1]}'.format)
위 내용은 Pandas에서 DataFrame을 효율적으로 피벗하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!