Pandas dataframe의 피벗을 해제하는 방법(예제 포함)


팬더에서는 Melt() 함수를 사용하여 DataFrame의 피벗을 해제할 수 있습니다. 즉, 이를 와이드 형식에서 긴 형식 으로 변환합니다.

이 함수는 다음 기본 구문을 사용합니다.

 df_unpivot = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])

금:

  • id_vars : 식별자로 사용할 열
  • value_vars : 피벗 해제할 열

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas DataFrame 피벗 해제

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
                   ' points ': [18, 22, 19, 14, 14],
                   ' assists ': [5, 7, 7, 9, 12],
                   ' rebounds ': [11, 8, 10, 6, 6]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6

다음 구문을 사용하여 DataFrame을 “피벗 해제”할 수 있습니다.

 #unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])

#view updated DataFrame
print (df_unpivot)

   team variable value
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6

우리는 열을 식별자 열로 사용했고 포인트, 어시스트 , 리바운드 열을 회전하지 않기로 결정했습니다.

결과는 긴 형식의 DataFrame입니다.

var_namevalue_name 인수를 사용하여 회전되지 않은 DataFrame의 열 이름을 지정할 수도 있습니다.

 #unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
             var_name=' metric ', value_name=' amount ')

#view updated DataFrame
print (df_unpivot)

   team metric amount
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6

이제 새 열의 제목은 MetricAmount 입니다.

추가 리소스

다음 튜토리얼에서는 Python에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas DataFrame에 행을 추가하는 방법
Pandas DataFrame에 열을 추가하는 방법
Pandas DataFrame에서 특정 값의 발생 횟수를 계산하는 방법

의견을 추가하다

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