데이터프레임을 이용하여 데이터를 분석하고 처리하다 보면, 칼럼 제목에 있는 값들을 하나의 열로 바꿔주고 싶을 수 있는데요, 아래 이미지처럼, 첫 번째 표에서 두 번째 표 형식으로 데이터를 변환해서 나타내고 싶을 수 있습니다.
위 표를 보면, 첫 번째 표에서 칼럼 이름에 해당되는 '2019', '2020', '2021' 이 오른쪽 표에서 'year' 라는 이름의 칼럼에 데이터로 추가되었고, 첫 번째 표에서 'item'과 해당 연도에 따른 값에 해당되는 영역이 오른쪽 표에서 'price' 라는 칼럼의 데이터로 변환이 되었습니다.
한편, melt() 라는 함수는 위와 같이 데이터프레임의 형태를 변환해주는 함수인데요, 위와 같은 결과를 나타내기 위해 사용해보도록 하겠습니다.
먼저, 첫 번째 표를 나타낸 데이터프레임(df)은 다음과 같습니다.
item 2019 2020 2021
0 coffee 2500 3000 3500
1 tea 3500 4000 5000
2 juice 4000 5000 5500
그리고나서 아래 코드를 입력하면 되는데요,
year = [2019, 2020, 2021]
df = df.melt(id_vars = ['item'], value_vars=year, var_name = ['year'], value_name='price')
첫 번째 줄 코드에는 'year' 라는 변수에 칼럼 이름에 해당하는 값들을 리스트 형식으로 넣어주었는데요, melt() 함수에 사용할 인자로, 해당되는 칼럼 이름이 모두 포함되어야 하며, 다른 값이 포함되면 안 됩니다.
두 번째 줄 코드에는 df.melt() 함수를 사용했고, 4가지 인자를 추가해주었는데요, 각각의 의미는 다음과 같습니다.
- id_vars = ['item'] : 기준이 되는 칼럼 = 'item'
- value_vars = year : 기준('item')에 맞게 입력될 행 이름의 리스트(=year 리스트)
- var_name = ['year'] : 새로 만드는 칼럼의 이름 = "year"
- value_name = 'price' : 값에 해당되는 데이터를 새로운 칼럼으로 입력되는데 이때 칼럼의 이름 = 'price'
이렇게 입력한 뒤, 데이터프레임을 출력하면 아래와 같이 출력됩니다.
item year price
0 coffee 2019 2500
1 tea 2019 3500
2 juice 2019 4000
3 coffee 2020 3000
4 tea 2020 4000
5 juice 2020 5000
6 coffee 2021 3500
7 tea 2021 5000
8 juice 2021 5500
이렇게 melt() 함수로 칼럼 이름에 해당되는 행을 열로 바꿔보았는데요, 초기 데이터프레임과 변환되고나서의 데이터프레임을 비교하며 다시 한번 확인해보시기 바랍니다 :D
'BLOG > 데이터분석' 카테고리의 다른 글
[데이터분석] plotly : 데이터프레임 3개 칼럼으로 그래프 나타내기 (0) | 2021.03.15 |
---|---|
[데이터분석] 데이터프레임 : 데이터프레임(dataframe) 여러 개 출력하기 - display() (0) | 2021.03.15 |
[데이터분석] plotly : 데이터프레임을 이용하여 데이터 간의 변화를 비교하는 그래프 만들기 (0) | 2021.03.15 |
[데이터분석] plotly : 막대 그래프 간단하게 만드는 방법 (0) | 2021.03.15 |
[데이터분석] 데이터프레임 : assign() 으로 새로운 칼럼(열) 추가하기 (0) | 2021.03.15 |