[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

    ....