Pandas pandas.melt() 함수

  1. pandas.melt()구문
  2. 예제 코드: pandas.melt()
  3. 샘플 코드 : 단일 열이id_varspandas.melt()
  4. 예제 코드: 열을 건너 뛰는pandas.melt()
  5. 예제 코드: 여러 열이있는pandas.melt()

pandas.melt()함수는 기존DataFrame의 모양을 변경하거나 변형합니다. DataFrame의 방향을 와이드 형식에서 긴 형식으로 변경합니다.

pandas.melt()구문

pandas.melt(dataframe, 
            id_vars, 
            value_vars, 
            var_name, 
            value_name, 
            col_level) 

매개 변수

Dataframe 필수 long 형식으로 변경하고자하는 DataFrame입니다.
id_vars 선택 과목 튜플, 목록또는 N 차원 배열 일 수 있습니다. 식별자 변수에 사용되는 열입니다. 둘 이상의 식별자 열을 선택할 수 있습니다.
value_vars 선택 과목 튜플, 목록또는 N 차원 배열 일 수 있습니다. 기본적으로 식별자 변수로 지정되지 않은 열은 값 변수입니다. 이것들을 선택할 수도 있습니다.
var_name 선택 과목 스칼라유형의 변수입니다. 식별자 열의 이름입니다. 기본적으로 variable입니다.
value_name 선택 과목 스칼라유형의 변수입니다. 비 식별자 열의 이름입니다. 기본적으로 value입니다.
col_level 선택 과목 정수 또는 문자열입니다. 다중 인덱스 열의 경우이 매개 변수를 사용하여DataFrame을 변환 할 수 있습니다.

반환

하나 이상의 식별자 열과 variablevalue라는 두 개의 비 식별자 열만 포함하는 변환 된 DataFrame을 반환합니다.

예제 코드: pandas.melt()

처음에는 필수 매개 변수 인 DataFrame만 전달하여이 함수를 확인합니다.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe)

print(dataframe1)

DataFrame은 다음과 같습니다.

   Attendance    Name Obtained Marks
0          60  Olivia            90%
1         100    John            75%
2          80   Laura            82%
3          78     Ben            64%
4          95   Kevin            45%

산출:

          variable   value
0       Attendance      60
1       Attendance     100
2       Attendance      80
3       Attendance      78
4       Attendance      95
5             Name  Olivia
6             Name    John
7             Name   Laura
8             Name     Ben
9             Name   Kevin
10  Obtained Marks     90%
11  Obtained Marks     75%
12  Obtained Marks     82%
13  Obtained Marks     64%
14  Obtained Marks     45%

여기에서 출력에 식별자 열이 없음을 알 수 있습니다. 두 개의 비 식별자 열이 있습니다. 원본DataFrame의 각 열은 이제 출력DataFrame의 행입니다.

이제 선택적 매개 변수를 전달하고 결과를 확인합니다.

샘플 코드 : 단일 열이id_varspandas.melt()

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe, 
                     id_vars=['Name'])

print(dataframe1)

산출:

     Name        variable value
0  Olivia      Attendance    60
1    John      Attendance   100
2   Laura      Attendance    80
3     Ben      Attendance    78
4   Kevin      Attendance    95
5  Olivia  Obtained Marks   90%
6    John  Obtained Marks   75%
7   Laura  Obtained Marks   82%
8     Ben  Obtained Marks   64%
9   Kevin  Obtained Marks   45%

식별자 열은 Name으로 지정되고 variablevalue열은 원래 데이터 프레임에서 추출 된 값과 함께 그 옆에 있습니다.

기본 variablevalues을 대체하기 위해 var_namevalue_name의 이름을 할당 할 수도 있습니다.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe, 
                     id_vars=['Name'], 
                     var_name = 'Performance', 
                     value_name = 'Success')

print(dataframe1)

산출:

     Name     Performance Success
0  Olivia      Attendance      60
1    John      Attendance     100
2   Laura      Attendance      80
3     Ben      Attendance      78
4   Kevin      Attendance      95
5  Olivia  Obtained Marks     90%
6    John  Obtained Marks     75%
7   Laura  Obtained Marks     82%
8     Ben  Obtained Marks     64%
9   Kevin  Obtained Marks     45%

예제 코드: 열을 건너 뛰는pandas.melt()

출석 만 확인하려면value_vars를 지정해야합니다.

import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe, id_vars=['Name'], value_vars='Attendance', var_name = 'Performance', value_name = 'Success')
print(dataframe1)

산출:

     Name Performance  Success
0  Olivia  Attendance       60
1    John  Attendance      100
2   Laura  Attendance       80
3     Ben  Attendance       78
4   Kevin  Attendance       95

원본 데이터 프레임의 Attendance열 정보 만 보여줍니다.

예제 코드: 여러 열이있는pandas.melt()

데모 데이터 프레임에 ID열을 추가합니다.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'ID': {0: 1, 1: 2, 2: 3,3: 4,4: 5},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe, 
                     id_vars=['ID', 'Name'])

print(dataframe1)

산출:

   ID    Name        variable value
0   1  Olivia      Attendance    60
1   2    John      Attendance   100
2   3   Laura      Attendance    80
3   4     Ben      Attendance    78
4   5   Kevin      Attendance    95
5   1  Olivia  Obtained Marks   90%
6   2    John  Obtained Marks   75%
7   3   Laura  Obtained Marks   82%
8   4     Ben  Obtained Marks   64%
9   5   Kevin  Obtained Marks   45%

IDName 열은 모두 식별자 열로 할당됩니다.

관련 문장 - Pandas Core

  • Python Pandas pandas.pivot_table() 함수