Pandas 를 이용한 데이터 재구성

Beginner

This tutorial is from open-source community. Access the source code

소개

데이터 분석에서 원하는 방식으로 정렬되지 않은 데이터 세트를 접하는 것은 흔한 일입니다. 데이터 재구성은 데이터를 행과 열로 구성하는 방식을 변경하는 프로세스를 의미합니다. 이 랩에서는 Pivot, Stack, Unstack, Melt, 교차 집계 (Cross tabulations), Tiling, Factorizing 및 Exploding 을 포함하여 Pandas 에서 데이터를 재구성하기 위한 몇 가지 주요 방법을 살펴봅니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수도 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 즉시 해결해 드리겠습니다.

필요한 라이브러리 가져오기 및 DataFrame 생성

먼저, 필요한 라이브러리를 가져오고 예제를 위한 DataFrame 을 생성해 보겠습니다.

import pandas as pd
import numpy as np

## Create DataFrame
np.random.seed([3, 1415])
n = 20
cols = np.array(["key", "row", "item", "col"])
df = cols + pd.DataFrame((np.random.randint(5, size=(n, 4)) // [2, 1, 2, 1]).astype(str))
df.columns = cols
df = df.join(pd.DataFrame(np.random.rand(n, 2).round(2)).add_prefix("val"))

단일 집계 (Single Aggregations) 를 사용한 피벗 (Pivoting)

Pivot 은 Pandas 에서 데이터를 재구성하는 주요 방법 중 하나입니다. 데이터를 다른 관점에서 볼 수 있도록 데이터를 변환하는 방법을 제공합니다.

## Pivot df with the mean of val0
df.pivot_table(values="val0", index="row", columns="col", aggfunc="mean", fill_value=0)

다중 집계 (Multiple Aggregations) 를 사용한 피벗 (Pivoting)

Pivot 에서 여러 집계를 수행할 수도 있습니다.

## Pivot df with the mean and sum of val0
df.pivot_table(values="val0", index="row", columns="col", aggfunc=["mean", "sum"])

교차 집계 (Cross Tabulations)

교차 집계는 여러 변수 간의 관계를 정량적으로 분석하는 방법입니다.

## Cross tabulation between row and col
df.pivot_table(index="row", columns="col", fill_value=0, aggfunc="size")

요약 (Summary)

축하합니다! Pandas 를 사용한 데이터 재구성 (Data Reshaping) 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.