colab python 데이터가공 변형, 교체

개념

데이터 가공 (Data manipulation)

데이터 분석의 80% 이상 데이터 전처리(pre-processing)에 쓰인다.

  • 결측값(missing values) 처리
  • 중복값(duplicated values) 처리
  • 오류값(error values) 처리
  • 기존 값을 가공해 새로운 값을 만들기
  • 등등...

데이터 가공하기(Data manipulation)

데이터 변형하기(Data transformation)

데이터 분석을 하다보면 데이터셋에 담긴 값을 새로운 데이터로 변형할 일이 많다.
데이터프레임의 하나의 컬럼을 다른 컬럼으로 변환 시키는 방법을 알아보자.

아래 데이터프레임(data)과 meat_to_animal 조합해서 데이터를 변형할 것이다.

step1. data 컬럼(열)을 이용해서 새로운 컬럼 만들기

시리즈(Series)의 map 메서드는 함수나 딕셔너리 같은 객체를 받아서 한 값을 다른 값으로 매핑해준다. 여기서 lower()는 문자열을 소문자로 바꿔주는 파이썬 문자열의 메서드이다.

data['food'] # food 컬럼을 사용, 간혹 대문자와 소문자가 썪인 경우가 있으니 lower() 통일
data['food'].map(lambda x: meat_to_animal[x.lower()])

step2. 기존 데이터프레임에 새로운 열(column)로 추가하기

새로운 시리즈(Series)를 기존 데이터프레임에 새로운 열(column)로 추가하면 데이터 변형이 끝난다.

# data['animal'] 새로운 시리즈를 추가할 컬럼 이름 선언
data['animal'] = data['food'].map(lambda x: meat_to_animal[x.lower()])

step2. ( assign매서드 사용)기존 데이터프레임에 새로운 열(column)로 추가하기

데이터베이스에 새로운 컬럼을 추가하는 용도의 assign이라는 메서드도 유용하게 쓰인다. 이 메서드는 새로운 컬럼 이름에 해당하는 파라미터에 데이터베이스에 적용할 함수를 넣어서 만들 수 있다. 이때 람다(lambda) 함수가 흔히 쓰인다.

# 위의 방법에서 = 과 assign 같은 역할이다
data.assign(animal = lambda df: df['food'].map(lambda x: meat_to_animal[x.lower()]))
# 위와 동일한 결과 도출.

값 교체하기(Replacing)

잘못 측정되거나 오류에 해당하는 값을 다른 값으로 교체해야 할 경우가 있다. 이 때 판다스의 .replace() 메서드를 쓸 수 있다.

# 하나의 시리즈를 먼저 선언한 다음
data = pd.Series([1., -999., 2., -999., -1000., 3.])
# 시리즈 값 중 [-999, -1000]를 nan로 변경
data.replace([-999, -1000], np.nan)

좋은 웹페이지 즐겨찾기