반응형
Python을 통한 전처리 방법 중 은근히 번거로웠던 방법이지만 정규표현식을 일부 활용하여 쉽게 하는 방법에 대해 알아보겠습니다.
1
2
3
4
5
6
|
import pandas as pd
df = pd.DataFrame({'사원' : ["기러기", "토마토", "스위스"],
'8월 매출액' : ["3,235,600원", "4,325,500원", "2,323,500원"],
'9월 매출액': ["3,235,600원", "2,325,500원", "4,323,500원"]})
df
|
cs |
위와 같이 데이터를 불러오게 되면 아래와 같은 형태가 나타납니다.

예를 들어 기러기 사원의 8월 매출액은 "3,235,600원" 이라고 나와있는데 3235600으로 변경하고 싶습니다.
Python의 경우 숫자와 문자열을 엄격히 구분하기 때문에 계산을 위해서는 변경해주어야 합니다.
문자열을 숫자로 변경하기 위해 2가지를 바꾸어야 합니다.
- "원"을 없앤다
- ","를 없앤다
엑셀에 익숙하신 분들은 두 번쨰 사항인 ","도 없애야 해?라고 생각하실 수 있습니다. ","까지 없어져야 형 변환이 가능합니다.
현재 데이터 타입은 다음과 같습니다.

8월 매출액, 9월 매출액 모두 object 타입입니다. object 타입은 문자형입니다.
01 일반적인 형변환 방법
1️⃣ "원"을 없애는 방법
1
|
df['8월 매출액'].str.replace("원", "")
|
cs |

2️⃣ ","(컴마) 없애는 방법
1
|
df['8월 매출액'].str.replace(",", "")
|
cs |

3️⃣ 둘 다 없애는 방법
method chaining(메서드 체이닝) 이라는 방법으로 사용하면 됩니다.
쉽게 말해서 함수 두 개를 연속해서 쓰는 것입니다.
1
|
df['8월 매출액'].str.replace(",", "").str.replace("원", "").astype(int)
|
cs |
마지막은 형 변환을 위해 astype(int)를 써줍니다.

02 정규표현식을 통한 형변환 방법
블로그의 핵심 ! 정규표현식을 통한 방법을 공개합니다.
1
|
df['8월 매출액'].str.replace("[^0-9]", "", regex = True).astype(int)
|
cs |

- "[^0-9]" : 숫자가 아닌 것 을 모두 가져오라는 뜻입니다.
- regex = True 는 정규표현식을 쓰는 것을 의미합니다.
정규표현식을 할 경우 좋은 점은 데이터 프레임에도 적용이 간결합니다.
1
|
df[['8월 매출액', "9월 매출액"]].replace("[^0-9]", "", regex = True).astype(int)
|
cs |
앞으로는 정규표현식을 통해 쉽고 간결하게 데이터 전처리를 해보시길 바랍니다.

반응형
'파이썬(Python)' 카테고리의 다른 글
[파이썬/Python] 분리된 엑셀 시트 하나의 시트로 통합하기 (0) | 2022.11.06 |
---|---|
[파이썬/크롤링] 멜론차트 Crawling, Selenium으로 동적페이지 크롤링하기 (0) | 2022.10.18 |
[파이썬(Python)] 파이썬으로 엑셀 작동하기_조작방법(openpyxl) (0) | 2022.10.02 |
[한산-용의 출현] 댓글 수집하기 (0) | 2022.08.01 |
[Python] Kaggle 에서 데이터 다운받기 (0) | 2022.07.24 |
댓글