Text Methods
- 일반적인 파이썬 문자열에는 다양한 메서드 호출이 가능합니다.
mystring = 'hello'
mystring.capitalize()
# 'Hello'
# isdigit() 문자열에 숫자가 있을 경우 True 반환 아닐 시 False 반환
mystring.isdigit()
# False
# 위의 코드 말고도 여러가지 문자열 메소드들이 있습니다.
Pandas and Text
- Pandas는 기존의 문자열 메소드에서 표시된 것보다 더 많은 일을 할 수 있습니다.
names = pd.Series(['andrew','bobo','claire','david','4'])
names.str.capitalize()
names.str.isdigit()
Splitting , Grabbing, and Expanding
tech_finance = ['GOOG,APPL,AMZN','JPM,BAC,GS']
len(tech_finance) # 2가 나온다.
tickers = pd.Series(tech_finance) # 시리즈로 변환
tickers.str.split(',') # ','을 기준으로 쪼갠다.
tickers.str.split(',').str[0]
/*
코드 결과
0 GOOG
1 JPM
dtype: object
*/
- 하면 위의 코드 결과와 같이 Series 형태로 출력된다.
- 여기서 expand를 추가하여 사용 해준다면 DataFrame으로 값을 내보냅니다.
tickers.str.split(',',expand=True)
Cleaning or Editing Strings
- 문자열 정리 or 편집하는 방법을 보여드리겠습니다.
# 빈칸과 ';'를 삭제해야 단어가 깔끔해질 것입니다.
messy_names = pd.Series(["andrew ","bo;bo"," claire "])
# ';'를 replace를 활용하여 삭제한다.
messy_names.str.replace(";","")
# 빈칸을 삭제하기 위해 strip을 사용하여 빈칸을 없애줍니다.
messy_names.str.replace(";","").str.strip()
- 위의 작성한 코드를 보듯이 str.사용 메소드 후에 또 한 번 str을 넣어준 후 string 메소드들을 사용해야 합니다.
사용자 정의 함수 사용을 위한 apply() 호출 대체 방법
- 우선 apply() 함수는 자신이 만든 함수 또는 lambda를 사용할 때 사용 하는 방법입니다.
def cleanup(name):
name = name.replace(";","")
name = name.strip()
name = name.capitalize()
return name
messy_names.apply(cleanup)
- 위에서 사용했던 코드와 똑같습니다. 그저 함수로 바꾸어 사용하였습니다.
- 그리고 결과는 위의 그림과 같습니다.
이상입니다!
728x90
'Data Analyst > ML' 카테고리의 다른 글
ML - Matplotlib-Basics (0) | 2024.09.10 |
---|---|
ML - PANDAS(Pivot-Tables) (0) | 2024.09.10 |
ML - PANDAS(Combining DataFrames) (0) | 2024.09.02 |
ML - PANDAS(Useful Methods) - 2 (0) | 2024.08.31 |
ML - PANDAS(Useful Method) - 1 (0) | 2024.08.31 |