pandas | str.split()을 사용하여 하나의 컬럼을 여러개로 나누기

2023. 5. 16. 21:55·TIL/python

다음과 같은 데이터프레임에 engine, mileage, max_power 등 각 값에 숫자와 문자가 함께 있는 컬럼들이 있다.

 

이런 컬럼들에서 숫자와 문자를 분리하기 위해 str.split() 함수를 사용할 수 있으며, 실행 결과는 다음과 같다.

data['engine'].str.split()

이렇게 분리했을 때 숫자 값은 [0]번 인덱스에 존재하므로 다음과 같이 인덱스를 사용해 추출할 수 있다.

data['engine'].str.split().str[0]

 

추출한 결과를 기존 데이터 프레임에 반영하기 위해서는 분리한 개수만큼의 코드를 반복해서 작성해야 한다.

data['engine'] = data['engine'].str.split().str[0]
data['engine_unit'] = data['engine'].str.split().str[1]

 

위와 같이 split을 한 후 인덱싱을 통해 숫자값을 추출할 수 있지만, split 함수의 매개변수인 expand를 사용하면 조금 더 편리하게 하나의 컬럼을 분리할 수 있다.

 

expand 매개변수를 사용하면 enigne 하나의 컬럼을 두 개의 컬럼으로 분리할 수 있다.

data['engine'].str.split(expand=True)

 

expand를 사용한 결과를 기존 데이터에 컬럼 이름을 설정하여 반영해 주면 split만 사용했을 때보다 과정이 수월해진다.

data[['engine', 'enigne_unit']] = data['engine'].str.split(expand=True)

 

 

더 자세한 정보는 아래 공식 문서에서 볼 수 있다.

 

pandas.Series.str.split — pandas 2.0.1 documentation

previous pandas.Series.str.slice_replace

pandas.pydata.org

 

데이터: https://media.githubusercontent.com/media/musthave-ML10/data_source/main/car.csv

저작자표시 (새창열림)
'TIL/python' 카테고리의 다른 글
  • python | capitalize(), title() 함수 비교
  • python | geopy 라이브러리를 사용하여 두 좌표간 거리 구하기
  • pandas | describe()를 사용하여 object 데이터까지 확인하기
  • pandas | merge(), join(), concat() 함수 사용하기
dduniverse
dduniverse
  • dduniverse
    dduniverse
    dduniverse
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Algorithm (123)
        • 알고리즘 이론 (8)
        • 백준 (19)
        • 프로그래머스 (83)
        • 구름 알고리즘 먼데이 챌린지 (13)
      • 빅데이터분석기사 (10)
        • 통계 (4)
        • 실기 (6)
      • KT에이블스쿨 (26)
      • FrontEnd (11)
        • React (5)
        • 기타 (6)
      • BackEnd (18)
        • Django (15)
        • Spring (3)
      • DS & ML (11)
        • Machine Learning (9)
        • Kaggle (2)
      • TIL (46)
        • python (22)
        • javascript (3)
        • 오류해결 (10)
        • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 관리
    • 글쓰기
  • 링크

  • 인기 글

  • hELLO· Designed By정상우.v4.10.0
dduniverse
pandas | str.split()을 사용하여 하나의 컬럼을 여러개로 나누기
상단으로

티스토리툴바