본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터 프레임 : 두 개의 칼럼(열) 합치기 (문자열 데이터) - map()

데이터 프레임에서 문자열 데이터(텍스트)가 있는 두 열이 있을 때, 이 두 열을 합치고 싶다면 어떻게 해야 할까요?

바로, map() 함수를 사용하면 쉽게 열을 합칠 수 있는데요, 아래 코드를 보면서 설명드리도록 하겠습니다.

 

 

1. 두 개의 칼럼 합치기

먼저, 아래와 같이 'df' 라는 이름의 데이터 프레임이 있다고 가정해보겠습니다.

 

	temp	item	count	price	rating
0	hot	coffee	1	3000	4.5
1	ice	juice	5	4000	3.0
2	ice	ade	2	5000	4.0
3	hot	milk	4	2000	2.5
4	hot	tea	3	4000	3.0
5	ice	water	2	1000	4.5

 

위 데이터프레임을 보면, 'temp' 칼럼과 'item' 칼럼에 문자열 데이터가 있음을 확인할 수 있습니다.

 

여기서 텍스트 데이터로 이루어진 열을 합쳐주려면 map() 함수를 사용하면 되는데요,

df["새로운칼럼"] = df["합칠 칼럼1"].map(str) + "이어줄 문자(주로 공백)" + df['합칠 칼럼2"].map(str)

의 형태로 사용하면 된답니다.

 

따라서 'temp' 칼럼과 'item' 칼럼을 합쳐주고, 사이에 " "(공백)을 넣어준 뒤, 'drink' 라는 새로운 칼럼에 이를 넣어주도록 하겠습니다.

 

df["drink"] = df['temp'].map(str) + " " + df['item'].map(str)
display(df)

 

	temp	item	count	price	rating	drink
0	hot	coffee	1	3000	4.5	hot coffee
1	ice	juice	5	4000	3.0	ice juice
2	ice	ade	2	5000	4.0	ice ade
3	hot	milk	4	2000	2.5	hot milk
4	hot	tea	3	4000	3.0	hot tea
5	ice	water	2	1000	4.5	ice water

 

출력된 결과를 보면, 맨 오른쪽 새로운 'drink' 함수가 생겼고, 'temp' + ' ' + 'item' 이 결합된 형태로 데이터가 저장되었음을 확인할 수 있습니다.

 

추가 작업으로, 'temp' 칼럼과 'item' 칼럼을 삭제하고 'drink' 칼럼을 앞으로 가져오도록 하겠습니다.

 

df[['drink', 'count', 'price', 'rating']]

 

	drink		count	price	rating
0	hot coffee	1	3000	4.5
1	ice juice	5	4000	3.0
2	ice ade		2	5000	4.0
3	hot milk	4	2000	2.5
4	hot tea		3	4000	3.0
5	ice water	2	1000	4.5

 

 

이렇게 map() 함수를 이용하여 두 열을 합쳐보았는데요, 

df["새로운칼럼"] = df["합칠 칼럼1"].map(str) + " " + df['합칠 칼럼2"].map(str) + " " + df['합칠 칼럼2"].map(str) 

이런 식으로 2개뿐만 아니라 여러 개의 칼럼을 합칠 수 있답니다.