[데이터분석] 데이터 프레임 : 두 개의 칼럼(열) 합치기 (문자열 데이터) - 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개뿐만 아니라 여러 개의 칼럼을 합칠 수 있답니다.