Pandas: dataframe의 모양을 넓은 것에서 긴 것으로 바꾸는 방법
다음 기본 구문을 사용하여 Pandas DataFrame을 와이드 형식에서 긴 형식으로 변환할 수 있습니다.
df = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])
이 시나리오에서 col1은 식별자로 사용하는 열이고 col2 , col3 등입니다. 피벗을 취소한 열입니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: Pandas DataFrame의 모양을 넓은 것에서 긴 것으로 변경
다음과 같은 팬더 DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'], ' points ': [88, 91, 99, 94], ' assists ': [12, 17, 24, 28], ' rebounds ': [22, 28, 30, 31]}) #view DataFrame df team points assists rebounds 0 A 88 12 22 1 B 91 17 28 2 C 99 24 30 3 D 94 28 31
다음 구문을 사용하여 이 DataFrame을 넓은 형식에서 긴 형식으로 변경할 수 있습니다.
#reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])
#view updated DataFrame
df
team variable value
0 A points 88
1 B points 91
2 C dots 9 9
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31
DataFrame은 이제 긴 형식입니다.
“팀” 열을 식별 열로 사용하고 “포인트”, “어시스트” 및 “리바운드” 열의 피벗을 해제했습니다.
var_name 및 value_name 인수를 사용하여 새로운 긴 DataFrame의 열 이름을 지정할 수도 있습니다.
#reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
var_name=' metric ', value_name=' amount ')
#view updated DataFrame
df
team metric amount
0 A points 88
1 B points 91
2 C points 99
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31
참고 : 여기에서 pandas Melt() 함수에 대한 전체 문서를 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas DataFrame에 행을 추가하는 방법
Pandas DataFrame에 열을 추가하는 방법
Pandas DataFrame에서 특정 값의 발생 횟수를 계산하는 방법