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_namevalue_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에서 특정 값의 발생 횟수를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다