danuri
오늘의 기록
danuri
전체 방문자
오늘
어제
  • 오늘의 기록 (307)
    • java (150)
      • java (33)
      • spring (63)
      • jpa (36)
      • querydsl (7)
      • intelliJ (9)
    • kotlin (8)
    • python (24)
      • python (10)
      • data analysis (13)
      • crawling (1)
    • ddd (2)
    • chatgpt (2)
    • algorithm (33)
      • theory (9)
      • problems (23)
    • http (8)
    • git (8)
    • database (5)
    • aws (12)
    • devops (10)
      • docker (6)
      • cicd (4)
    • book (44)
      • clean code (9)
      • 도메인 주도 개발 시작하기 (10)
      • 자바 최적화 (11)
      • 마이크로서비스 패턴 (0)
      • 스프링으로 시작하는 리액티브 프로그래밍 (14)
    • tistory (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • SWAGGER
  • reactive
  • RDS
  • Kotlin
  • Spring
  • Database
  • AWS
  • mockito
  • nuribank
  • JPA
  • Java
  • DDD
  • S3
  • docker
  • Thymeleaf
  • Security
  • connection
  • 마이크로서비스패턴
  • ChatGPT
  • Bitmask
  • 자바 최적화
  • 도메인 주도 설계
  • 등가속도 운동
  • gitlab
  • Saving Plans
  • POSTGIS
  • CICD
  • 트랜잭션
  • Jackson
  • PostgreSQL

최근 댓글

최근 글

hELLO · Designed By 정상우.
danuri

오늘의 기록

[Pandas] get_dummies를 사용한 수치화된 데이터 생성
python/data analysis

[Pandas] get_dummies를 사용한 수치화된 데이터 생성

2021. 8. 26. 01:20

 

사용 데이터

MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv

https://grouplens.org/datasets/movielens/

 

import pandas as pd

movies = pd.read_csv('[파일 경로]/movies.csv', index_col='movieId')

 

+) year 컬럼은 title에서 추출하여 따로 추가해둔 상태

 

 

장르 데이터 숫자형으로 변경하기

현재 movies 데이터에 genres 컬럼을 살펴보면 한 영화가 여러 장르를 갖고 있다.

 

따라서 각 영화가 'Adventure' 장르를 갖고 있는지 알기 위해서는

movies['Adventure'] = movies['genres'].apply(lambda x: 'Adventure' in  x)

 

또한 각 영화가 'Comedy' 장르를 갖고 있는지 알기 위해서는

movies['Comedy'] = movies['genres'].apply(lambda x: 'Comedy' in  x)

 

<결과>

 

이처럼 각 장르의 존재 여부를 True, False로 알 수 있다.

다만 모든 장르에 대해 컬럼을 생성하는 것은 굉장히 비효율적이다.

 

get_dummies

이를 한 눈에 확인할 수 있게 해주는 함수가 바로 get_dummies이다.

genres_dummies = movies['genres'].str.get_dummies(sep='|')

1. 판다스에서 문자열 관련 함수를 사용하거나 전처리를 하기 위해서는 str을 붙여주어야 한다.

2. get_dummies는 genre 데이터를 수치화된 데이터로 바꿔준다.

 

<결과>

 

이렇게 각 영화 별로 어떤 장르가 속해있는지 0 또는 1로 한 눈에 확인할 수 있다.

 

Save pickle

genres_dummies.to_pickle('[파일 경로]/genres.p')

이러한 수치화된 파일은 pickle 형식으로 저장해 두면 나중에 재사용하기 좋다.

 

+) csv와 pickle의 차이

https://stackoverflow.com/questions/48770542/what-is-the-difference-between-save-a-pandas-dataframe-to-pickle-and-to-csv

'python > data analysis' 카테고리의 다른 글

[Pandas] describe(), hist()를 통한 데이터 분석  (0) 2021.08.26
[Pandas] seaborn - heatmap을 사용한 데이터 상관관계 시각화  (0) 2021.08.26
[Pandas] apply 함수를 사용한 데이터 분석  (0) 2021.08.25
[Pandas] seaborn을 사용한 데이터 시각화  (0) 2021.08.25
[Pandas] str.extract를 사용한 데이터 전처리 + 결측값 핸들링하기  (0) 2021.08.25
    'python/data analysis' 카테고리의 다른 글
    • [Pandas] describe(), hist()를 통한 데이터 분석
    • [Pandas] seaborn - heatmap을 사용한 데이터 상관관계 시각화
    • [Pandas] apply 함수를 사용한 데이터 분석
    • [Pandas] seaborn을 사용한 데이터 시각화
    danuri
    danuri
    IT 관련 정보(컴퓨터 지식, 개발)를 꾸준히 기록하는 블로그입니다.

    티스토리툴바