Python 판다스 활용 데이터 전처리 방법 – 특정 문자열 찾아서 변경하기

사실 우리가 실생활에서 만나는 데이터는 예외가 많습니다.

그래서 데이터를 꼭 전처리해야 하는데요.

오늘은 이 데이터 전처리하는 방법을 알아보도록 하겠습니다.

파이썬 판다스 결측치 처리하기

실무에서 가장 많이 만나는 부분은 데이터가 없는 것입니다.

이 때에 데이터가 빈값을 Drop하면 되는데요.

이것을 전문적인 용어로는 결측치 제거라고 합니다.

216530936 a2fe3f99 c0b2 4d5a 9b1d 6f2ca7a95bcd

간단하게 dropna를 활용합니다.

import pandas as pd

df = pd.DataFrame({'name': ['doru','jack','Joe'],
                   'age': [None, 32,18],
                   'state': ['Seoul','Paris','Japan'],
                   'point' : [64,24,'7,0']}
                  )

print(df)

df.dropna(axis=0)
216532736 0fc41bad 3d42 4377 ab37 4777d3b5bf23
dropna를 실행하면 결측치가 있는 doru행은 사라집니다.

dropna 실행 후

216532882 f90db333 c890 4017 979a 35a776edd37b

결측치를 제거하지 않고 반대로 0으로 채우는 방법은

fillna 함수를 사용합니다.

df.fillna(0)

이어서 자주 만나는 상황은 값을 변환해야 하는 상황입니다.

특정 조건을 만족하는 값 변경하기

판다스에서 특정 조건을 만족하는 값을 변경하는 것을 알아보겠습니다.

예를 들어 나이가 민감하니 나이를 정확하게 기재하지 않고 xx대로 변경해보겠습니다.

lambda문과 Apply를 통해서 구현하였고,

lambda문은 식1 if 조건식1 else 식2 if 조건식2 else 식3 식으로 사용이 가능합니다.

df['age'] = df['age'].apply(lambda x: "30대" if 30  < x < 39  else "10대" if 10 < x < 19 else x)

print(df)

결과는 아래처렴 30대 10대로 변경되서 나오는 것을 알 수 있습니다.

216538372 106c3b67 9d68 4434 bff2 beb08833e814

포함하는 문자 변경하기

텍스트를 보시면 현재 paris에 콤마 잘못 찍혀 있는데요.

import pandas as pd

df = pd.DataFrame({'name': ['doru','jack','Joe'],
                   'age': [None, 32,18],
                   'state': ['Seoul','Par,is','Japan'],
                   'point' : [64,24,'70']}
                  )



df['age'] = df['age'].apply(lambda x: "30대" if 30  < x < 39  else "10대" if 10 < x < 19 else x)

print(df)

df['state'] = df['state'].str.replace(',', '')
print(df)

이 값도 변경해보도록 하겠습니다.

이 때에는 str.replace 함수를 사용하면 됩니다.

216546833 264dc54d 1945 4efd 8870 de177e9b7e16

실제 업무중에 만나는 데이터는 더 복잡한 케이스들도 많은데요.

이런 방법을 조합해서 전처리하셔서 데이터를 활용하시면 됩니다.

그럼 잘 사용하시기 바랍니다.

파트너스 활동으로 일정액의 수수료 등을 받을 수 있습니다.

Leave a Comment