[Pandas] 문자열을 여러개의 컬럼으로 나누기

반응형
반응형

크롤링을 하거나 데이터를 받았는데 문자열과 기호가 섞여 있는 경우가 있습니다.

판다스에는 따로 그런걸 할 수 있는 메쏘드는 없고 기본 지식을 이용해 컬럼을 쪼개봅시다.

 

예를 들어 중간고사 점수 데이터를 받았는데 다음과 같이 한 덩어리로 주었다고 합시다.

import pandas as pd
df = pd.DataFrame({'Mid-term': ['Anne:M:100:A', 'Peter:F:50:C', 'Max:M:90:B']})
df

 

황당무계한 데이터를 보기 좋게 컬럼을 자르려고 하는 겁니다. 

판다스의 메쏘드가 없으니 만들어 합시다.

문자열을 ':'로 나누고 데이터프레임도 나눠진 문자열만큼 컬럼을 만들어 냅니다.

 

먼저 문자열을 나눠야 하니 split() 이용합니다.

그리고 컬럼에 넣어야 하니 리스트로 반환하겠습니다.

df['Mid-term'].str.split(':').tolist()

 

이제 컬럼에 맞춰서 넣습니다.

컬럼에 원하는 이름으로 해서 데이터가 4개씩 쪼개져야 하니 4개의 컬럼을 만듭니다.

df2 = pd.DataFrame(df['Mid-term'].str.split(':').tolist(),columns=['Name','Gender','Score','Grade'])
df2

 

메쏘드가 있다면 사용하면 제일 좋겠지만 메쏘드가 없을때는

파이썬에 주어진 기본적인 방법으로 하나씩 풀어나갈 수 있으니

응용을 잘하는 게 코딩실력을 올리는 지름길이 아닌가 싶습니다.

 

 

관련 포스팅

[Python/기초] - [Python] 문자열(string) 다루기

 

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY