Python Pandas 데이터 프레임 피벗 해제
Luqman Khan
2023년6월21일
Python은 뛰어난 데이터 중심 패키지 에코시스템으로 인해 데이터 분석에 선호되는 언어입니다. 이러한 패키지 중 하나는 데이터 가져오기 및 분석을 크게 단순화하는 Pandas입니다.
이 기사에서는 Pandas dataframe melt()
함수를 사용하여 데이터 프레임을 넓은 형식에서 긴 형식으로 변환하면서 선택적으로 식별자 변수 세트를 그대로 둡니다.
melt()
함수를 사용하여 Python Pandas 데이터 프레임 피벗 해제
이 함수는 데이터 프레임을 하나 이상의 열이 식별자 변수(id vars)인 형식으로 변환할 수 있습니다. 측정된 변수(값 변수)로 간주되는 다른 모든 열은 행 축에 대해 피벗 해제
되어 두 개의 비식별자 열인 변수
와 값
만 남습니다.
통사론:
DataFrame.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
매개변수:
frame
: 우리가 사용하는 DataFrame입니다.id_vars
: 식별자 변수로 사용하는 열입니다.value_vars
: 피벗을 해제하는 데 사용됩니다.var_name
: 변수 컬럼의 이름을 지정합니다. 아무 것도 지정하지 않으면 프레임, 변수 또는 열 이름이 사용됩니다.value_name
: 값 열에는 고유한 이름을 지정해야 합니다.col_level
: 열이 MultiIndexe인 경우 이 수준을 사용하여 열을 녹입니다.Returns
: DataFrame을 각 열에 하나 이상의 식별자 변수가 있는 형식으로 변환합니다.
예 1:
먼저 A
, Bsc
, Cse
및 xyz
열이 있는 데이터 프레임을 만듭니다.
import pandas as pd
df = pd.DataFrame(
{
"A": [12, 4, 5, 44, 1],
"Bsc": [5, 2, 54, 3, 2],
"Cse": [20, 16, 7, 3, 8],
"xyz": [14, 3, 17, 2, 6],
}
)
df
출력:
| | A | Bsc | Cse | xyz |
| ---- | ---- | ---- | ---- | ---- |
| 0 | 12 | 5 | 20 | 14 |
| 1 | 4 | 2 | 16 | 3 |
| 2 | 5 | 54 | 7 | 17 |
| 3 | 44 | 3 | 3 | 2 |
| 4 | 1 | 2 | 8 | |
아래 함수는 데이터 프레임을 unpivot합니다. 여기서 A
는 식별자이고 Bsc
열은 값 변수입니다.
df.melt(id_vars=["A"], value_vars=["Bsc"])
출력:
| | A | variable | value |
| ---- | ---- | -------- | ----- |
| 0 | 12 | Bsc | 5 |
| 1 | 4 | Bsc | 2 |
| 2 | 5 | Bsc | 54 |
| 3 | 44 | Bsc | 3 |
| 4 | 1 | Bsc | 2 |
예 2:
dataframe.melt()
함수를 사용하여 A
열을 식별자 변수로 설정하고 Bsc
및 Csc
열을 값 변수로 설정합니다.
df.melt(
id_vars=["A"],
value_vars=["Bsc", "Cse"],
var_name="Variable_column",
value_name="Value_column",
)
출력:
| index | A | Variable_column | Value_column |
| ----- | ---- | --------------- | ------------ |
| 0 | 12 | Bsc | 5 |
| 1 | 4 | Bsc | 2 |
| 2 | 5 | Bsc | 54 |
| 3 | 44 | Bsc | 3 |
| 4 | 1 | Bsc | 2 |
| 5 | 12 | Cse | 20 |
| 6 | 4 | Cse | 16 |
| 7 | 5 | Cse | 7 |
| 8 | 44 | Cse | 3 |
| 9 | 1 | Cse | |
결론
이 기사에서는 데이터 프레임을 피벗 해제하거나 데이터 프레임을 긴 형식으로 변환하여 행 수를 늘리는 방법에 대해 설명했습니다.
이를 위해 melt()
함수를 사용했습니다. 한 열은 변수 식별자로 지정되고 다른 열은 식별자의 값입니다.