자신에게 친절할 것 :)

Data Science/Pandas

[데이터 전처리] 대소문자 처리하기, 문자열 분리하기, 문자 제거하기

Tashapark 2024. 6. 17. 22:32
728x90

# 코드잇 데이터 사이언티스트 강의 듣는 중


 

<대소문자 처리하기>

 

- .unique() 로 값 상태 확인. 

airbnb_df['state'].unique()

 

--> 보면 대소문자가 중구난방으로 섞여있는데, 컴퓨터는 다 다른 값으로 인식. 

 

 

1) 소문자로 바꾸기 --> .str.lower()

airbnb_df['state'].str.lower()

 

--> 전부 소문자 

 

 

 

 

 

 

 

2) 대문자로 바꾸기 --> .str.upper()

airbnb_df['state'].str.upper()

 

--> 대문자 

 

 

 

 

 

 

 

3) 첫 알파벳만 대문자로 바꾸기 --> .str.capitalize()

airbnb_df['state'].str.capitalize()

 

 

 

 

 

 

 

 

 


 

<문자열 분리하기>

 

- .str.split() 

- 한 값에 있는 문자열을 ('') 안의 값으로 분리하기 

airbnb_df['location'].str.split(',')

 

--> 이 경우에는 , 로 분리했음

--> 띄어쓰기나 어떤 문자열로도 다 가능함. 

 

+ .. 이것을 예전에 알았다면 엑셀할 때 참으로 편했을 건데..ㅎ

 

 

 

 

- .str.split() .str[]

- 리스트 안에 문자열을 인덱싱해서 각각 벡터로 저장이 가능함. 

airbnb_df['location'].str.split(',').str[0]
airbnb_df['location'].str.split(',').str[1]


# 변수를 만들어서 저장
airbnb_df['neighborhood'] = airbnb_df['location'].str.split(',').str[0]
airbnb_df['city'] = airbnb_df['location'].str.split(',').str[1]

 

--> 0번째 값만 따로 추출함. 

 

--> 그걸 neighborhood 변수에 저장해줌. 

 

 

 

 

 

- 분리를 해줬으면 굳이 이전 값을 둘 필요가 없으니 삭제해 주면 됨. 

airbnb_df = airbnb_df.drop(columns='location')

 

 


 

<문자 제거하기>

 

 

--> 위에서 만든 벡터를 보면, 2번째 값이 공백과 .을 포함해서 값이 만들어져 있음. 

 

--> 이 2개를 삭제하는 것이 표를 읽기에 더 깔끔하며, 컴퓨터는 공백과 .을 포함해서 읽기 때문에 아래처럼 그냥 값을 입력하면 확인 할 수 없음. 

 

 

45

 

 

 

 

 

- .str.strip() 

- 값의 공백을 제거해줌. 

airbnb_df['city'].str.strip()

# 다시 저장
airbnb_df['city'] = airbnb_df['city'].str.strip()

 

- .str.replace() 

- 이건 원래 값을 찾아서 변경해주는 것인데 공백으로도 변경이 가능함. --> 삭제된다는 의미 

+ 워드나 한글의 '찾기와 바꾸기'로 이해하면 될 듯 

- 파라미터가 기본적으로 3개가 필요함 --> ('변경할 문자', ' 변경될 문자', regex = False)

- regular expression 정규 표현식: 여러 글자를 조합해서 문자열의 패턴을 나타내는 방법  replace는 디폴트가 TRUE임. 그런데 지금은 찾아서 처리가 하는 게 아니라 없애는 거임. 

++ 자세히.. 뭔 소린지 모르겠지만, 굳이 알 필요는 없을 것 같아 검색하지 않음. 어쨌든 디폴트가 아니어야 함

 

airbnb_df['city'].str.replace('.', '',regex=False)

#다시 저장
airbnb_df['city'] = airbnb_df['city'].str.replace('.', '',regex=False)

 

--> 이러면, .이 사라짐. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 두 코드를 이어서 한 번에 쓸 수 있음 단, .str을 써서 이어줘야 함. 

- 문자열 함수 연결 시 무조건 .str을 써야 함.

airbnb_df['city'].str.strip().str.replace('.','',regex=False)

 

728x90
반응형