[파이썬기초] 문자열(str) 데이터 다루기

2020. 4. 13. 12:04노트/Python : 프로그래밍

 

문자열 데이터 변형

data = " a, b,    apple"
#공백문자 (줄바꿈 문자 포함) 제거하여 리스트로 생성 
list=[x.strip() for x in data.split(",")]

>>> ['a', 'b', 'apple']

# 쉼표 구분 없이 문자열들의 나열로 리스트 생성 
" ".join(list)

>>> 'a b apple'

 

 

  • join() : 문자열을 구분자로 하여 다른 문자열을 순서대로 이어붙인다. 
  • index() : 부분 문자열의 첫번째 글자의 위치를 반환한다. 없을 경우 ValueError
  • find() : 부분 문자열의 첫번째 글자의 위치를 반환한다. 없을 경우 -1 
  • rfind() : 부분 문자 문자열의 마지막 글자의 위치를 반환한다. 
  • replcae() " 문자열을 다른 문자열로 치환한다.
  • strip() : 공백 문자 및 \n 문자를 제거한다. 
  • split() : 문자열을 구분자를 기준으로 부분 문자열의 리스트로 분리한다. 
  • lower() : 알파벳 문자를 소문자로 변환한다. 
  • upper() : 알파벳 문자를 대문자로 변환한다. 

 

 

 

TypeError: string indices must be integers 오류 해결방법

data[['genres','keywords']].head()

 

다음과 같이 데이터프레임 내부에 dictionary가 str 문자열로 들어가있는 경우에 

 

data['genres'].apply(lambda x : [d['name'] for d in x]).apply(lambda x : " ".join(x))

 

"name" key값들의 value값들을 추출하고자 하면 다음과 같이 TypeError가 발생한다. 

 

 

이럴때는 iteral_eval 함수를 호출하여 데이터에 적용시켜주자. 

from ast import literal_eval
#abstract syntax tree 모듈 : String을 실제로 실행할 수 있도록 도움을 주는 라이브러리 

data['genres'].apply(literal_eval)

오류 없이 잘 적용되는 것을 확인 할 수 있다. 

 

출처

파이썬 라이브러리를 활용한 데이터 분석 (2판) 296p~ 297p