프로젝트

[포켓몬 Kaggle] 2. 성별 및 키.몸무게 전처리 (MySQL)

wjyee 2026. 4. 23. 04:19

이제 포켓몬의 

1. 성별

2. 키와 몸무게

 

를 이용해서 분석을 진행해보려한다.

 

하지만 그전에, 이 두 열의 전처리가 필요하다.

 

1) 전처리

1. 성별

-- percentage_male 결측치 -> 무성(0처리)
UPDATE pokemon
SET percentage_male = 0
WHERE percentage_male IS NULL;

 

수컷의 비율이 NULL처리 되어있는 포켓몬은 무성인 경우라, 0으로 결측치를 처리해주었다.

 

 

2. 키와 몸무게

- 몇몇의 포켓몬의 키,몸무게가 나와있지않아 포켓몬 도감을 들어가입력해주는 식으로 진행했다.

이 친구의 경우 시간별로 모습이 다르면서, 또 특이하게 키가 달랐다.

한밤중인 친구가 0.2m정도 커서(허리를 펴서 그런가보다) 일단 세 모습의 키는 평균값으로 처리해주었다.

또 키컸어...

그리고 다른 포켓몬들의 경우에도, 알로라 모습의 키랑 다르다거나, 거다이맥스도 있고(나 때는 없었는데..), 일단 혼선을 방지하고자 기본적인 형태의 포켓몬을 기준으로 데이터를 수정해주려한다.

(데이터 상에서 고지의 타입이 땅, 강철로 혼합되있어 땅 단일타입으로 수정해주는 식으로, 알로라지방은 배제했다)

-- 키, 몸무게 결측치인 포켓몬 확인
SELECT pokedex_number, height_m, weight_kg
FROM pokemon
WHERE height_m IS NULL OR weight_kg IS NULL;

결과값

다 채워주고...

 

세대별 포켓몬 수

확인해보니, 7세대에 포켓몬 8마리가 등록되어있지않았다.

딱 7세대만 추가하고 나머지 세대는 다음에 해야겠다(너무 많음 이슈)

8마리 추가완료

 

 

이제 알로라 지방 포켓몬 타입을 배제할 차례이다.

... 딱 18개만 수정해주자!

-- 알로라의 경우 고려x, 타입 배제
UPDATE pokemon
SET type1 = 'normal', type2 = ''
WHERE pokedex_number = 19 OR pokedex_number = 20;
UPDATE pokemon
SET type1 = 'electric', type2 = ''
WHERE pokedex_number = 26;
UPDATE pokemon
SET type1 = 'ground', type2 = ''
WHERE pokedex_number = 27 OR pokedex_number = 28;
UPDATE pokemon
SET type1 = 'fire', type2 = ''
WHERE pokedex_number = 37 OR pokedex_number = 38;
UPDATE pokemon
SET type1 = 'ground', type2 = ''
WHERE pokedex_number = 50 OR pokedex_number = 51;
UPDATE pokemon
SET type1 = 'normal', type2 = ''
WHERE pokedex_number = 52 OR pokedex_number = 53;
UPDATE pokemon
SET type1 = 'rock', type2 = 'ground'
WHERE pokedex_number = 74 OR pokedex_number = 75 OR pokedex_number = 76;
UPDATE pokemon
SET type1 = 'poison', type2 = ''
WHERE pokedex_number = 88 OR pokedex_number = 89;
UPDATE pokemon
SET type1 = 'grass', type2 = 'psychic'
WHERE pokedex_number = 103;
UPDATE pokemon
SET type1 = 'ground', type2 = ''
WHERE pokedex_number = 105;

 

이제 다음으로, 전처리 완료된 것들을 가지고 본격적인 프로젝트를 진행해볼 예정이다!