문자열 처리

wandajeong·2021년 12월 26일
0

python basic

목록 보기
7/13

문자열처리

  • 제거/채우기
#앞뒤공백제거
email=email.str.strip()  

#마지막문자 제거, a='*abcd*'일때 
a.strip('*') 
>>'abcd'

##특수기호 제거 
#re.sub
def clean_text(inputString):
    text_rmv = re.sub('[-=+,#/\?:^.@*\"※~ㆍ!』‘|\(\)\[\]`\'…》\”\“\’·]', '', inputString)
    return text_rmv

df['refined']=df['refined'].apply(clean_text)

email.str.pad(width=20, fillchar='_')  #기본은 왼쪽에 채우기 
email.str.pad(width=20, fillchar='*', side='right')
  • 대체하기
email=email.str.replace(' at', '@')

Sereis.str.replace('hankook|hanguk|hankuk|hangug', '') #여러개 문자열 대체 

#여러 문자열을 여러문자로 대체 
Sereis.str.translate(str.maketrans('123','456') #1은 4로, 2는 5로, 3은 6으로 대체됨

email.str.lower()   # 소문자로 
email.str.upper()   # 대문자로 

여러 개의 문자(character) 변환하기

  • 쪼개기
email.str.split('@')               #리스트 
email.str.split('@', expand=True)  #데이터프레임으로 변환 
email.str.split('.', n=1, expand=True)  #n=1, 한번만 쪼개기 
email.str.rsplit('.', n=1, expand=True)   #뒤에서부터 한번만 쪼개기 

확인메서드

email.str.len()
email.str.count('a')

email.str.find('@')  #한번 찾으면 끝 
email.str.rfind('.')  #뒤에서부터 찾기

email.str.startswith('h')
email[email.str.startswith('h')]   #h로 시작하는 애들만 걸러줘 
email.str.endswith('r')
email.str.contains('co.')
email.str.contains('co\.')  #진짜 점으로 인식하기위해서
email.str.str.replace(r'\(주\)','')  #진짜 괄호로 인식하기 위해 

# 문자열이 '숫자'로만 이루어져 있는지 확인 
str.isdigit()
str.isdigit("판단하고자 하는 문자열")

문자열 dataframe

#dataframe 문자열 한줄로 통합(groupby)
tag_group = tags.groupby('id')[['value']].agg(lambda x: ', '.join(x)).reset_index()

# dataframe 문자열 여러줄로 분리(위 내용과 반대) 
# clean mapping data_EDA2.ipynb
df = cmd_difid['other_id'].str.split(',', expand=True)
df = other_id.stack().reset_index(level=1, drop=True).to_frame('id_2')
flat_card= data.merge(df, left_index=True, right_index=True, how='left')
flat_card

기타

  • f-string
print(f'{c}개 주성분 :{v:.4f}')
profile
ML/DL swimmer

0개의 댓글