Python Pandas 데이터 프레임 피벗 해제

Luqman Khan 2023년6월21일
  1. melt() 함수를 사용하여 Python Pandas 데이터 프레임 피벗 해제
  2. 결론
Python Pandas 데이터 프레임 피벗 해제

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, Csexyz 열이 있는 데이터 프레임을 만듭니다.

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 열을 식별자 변수로 설정하고 BscCsc 열을 값 변수로 설정합니다.

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() 함수를 사용했습니다. 한 열은 변수 식별자로 지정되고 다른 열은 식별자의 값입니다.

관련 문장 - Pandas Dataframe