이제 포켓몬의
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세대만 추가하고 나머지 세대는 다음에 해야겠다(너무 많음 이슈)

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

... 딱 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;
이제 다음으로, 전처리 완료된 것들을 가지고 본격적인 프로젝트를 진행해볼 예정이다!
'프로젝트' 카테고리의 다른 글
| [포켓몬 Kaggle] 1. 포획률과 총개체값의 상관관계 (MySQL) (0) | 2026.04.13 |
|---|---|
| 만우절에 검색량이 늘어나는 키워드는? (네이버 데이터랩 분석) (3) | 2026.04.03 |