๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
AI

[TIL] python Lv2 ์ „์ฒ˜๋ฆฌ, ๊ฒฐ์ธก์น˜ ํ‰๊ท ๊ฐ’, ๋ณด๊ฐ„๋ฒ•

by hyerong 2023. 2. 8.

ํŒŒ์ด์ฌ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜(missing data)๋ฅผ ๋งŒ๋‚ฌ์„๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค.

์ฒซ๋ฒˆ์งธ๋Š” ๊ฒฐ์ธก์น˜์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ฉ”๊พธ๋Š” ๋ฐฉ๋ฒ•

๋‘๋ฒˆ์žฌ๋Š” ๋ณด๊ฐ„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋จผ์ € ๊ฒฐ์ธก์น˜์˜ ๊ฐœ๋…์„ ๋‹ค์‹œ ์งš์–ด๋ณด์ž๋ฉด missing data ์ฆ‰, ์žƒ์–ด๋ฒ„๋ฆฐ ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด ํ‘œ์—์„œ,

ํ–‰์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋„ฃ๋Š” ์—ด์ด ๋น„์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์ƒ๋“ค์˜ ํ•™๋ฒˆ์ด๋ผ๋Š” ํ–‰์—์„œ ํŠน์ • ํ•™์ƒ์˜ ํ•™๋ฒˆ ์นธ์ด ๋น„์–ด์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์ด๋ฆ„ ํ•™๋ฒˆ
ํ™๊ธธ๋™ 21900123
์‹ฌ์ฒญ์ด (missing data)
๋กœ๋นˆํ›— 21500321

์œ„ ํ‘œ์—์„œ๋Š” ์‹ฌ์ฒญ์ด์˜ ํ•™๋ฒˆ์—์„œ ๋ฐ์ดํ„ฐ missing์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋Ÿฐ ๋นˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๊ฐ€๋ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ด๋Ÿฐ ๋นˆ ๋ฐ์ดํ„ฐ๋ฅผ ์œตํ†ต์„ฑ ์žˆ๊ฒŒ ๋ฉ”๊ฟ”์ค˜์•ผํ•˜๋Š”๋ฐ, ์˜ค๋Š˜ ์†Œ๊ฐœํ•  ๋ฐฉ๋ฒ• ์ค‘ ์ฒซ๋ฒˆ์งธ๋กœ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ฉ”๊พธ๊ธฐ๋ฅผ ์‚ดํŽด๋ณด์ž.

ํ‰๊ท ๊ฐ’์„ ์ฐพ๋Š” ํ•จ์ˆ˜ mean()๊ณผ ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜๊ฐ€ ์ผ์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” fillna(

์–ด์ฉŒ๊ณ 

, inplace=True)๋งŒ ์•Œ๋ฉด ๋œ๋‹ค.

ํ’€์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

df.fillna({'Column name' : int(df[Column name'].mean()}, inplace=True)

 

์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์ž๋ฉด df๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๊ฐ์ฒด(๋ฐ์ดํ„ฐ ๊ฐ์ฒด)

fillnaํ•จ์ˆ˜๋Š” fill null arg๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค, null์„ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ arg๋กœ ์ฑ„์›Œ๋ผ!

Column name์€ missing data๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ–‰์˜ ์ด๋ฆ„ 

int(df[Column name'].mean()๋ถ€๋ถ„์€ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๊ฐ€ ์ผ๋‹จ ๋‹น์—ฐํžˆ ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ (๋ฐ์ดํ„ฐ ์•ˆ์— ๋‹ค์–‘ํ•œ ํ–‰์ด ์žˆ์„ํ…Œ๋‹ˆ)

๊ทธ ๋ฐฐ์—ด์ค‘ ๋‚ด๊ฐ€ ์ฑ„์šฐ๊ณ ์ž ํ•˜๋Š” ํ–‰์˜ ์ด๋ฆ„์„ ์ฐพ์•„์„œ ๊ทธ ํ–‰์˜ ํ‰๊ท (-meanํ•จ์ˆ˜ ์‚ฌ์šฉ)์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๊ทธ ๊ฐ’์„ ์ •์ˆ˜(-intํ•จ์ˆ˜ ์‚ฌ์šฉ)๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์ค€๋‹ค๋Š” ๋œป 

inplace=True๋Š” ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์šฉ๋„ 

 

์•„์ด๊ณ  ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‰ฝ๋‹ค ์‰ฌ์›Œ!! 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‰๊ท ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์ข€๋” ์œตํ†ต์„ฑ ์žˆ๊ฒŒ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 

์ผ๋‹จ ๋ณด๊ฐ„๋ฒ•์˜ ์˜๋ฏธ๋ถ€ํ„ฐ ์•Œ๊ณ ๊ฐ€์ž. ๋„ค์ด๋ฒ„ ์ˆ˜ํ•™๋ฐฑ๊ณผ์—์„œ ์„ค๋ช…ํ•˜๊ธฐ๋ฅผ,,

๋ณด๊ฐ„๋ฒ•์ด๋ž€ ์•Œ๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค.

 

์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ์‹œ๋„ํ•œ ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• ํ‰๊ท ๊ฐ’์œผ๋กœ ์ฑ„์šฐ๊ธฐ๋„ ๋‹น์—ฐํžˆ ๋ณด๊ฐ„๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค. 

 

๊ทธ๋Ÿฐ๋ฐ, ์™œ ๋‘๋ฒˆ์งธ ๋ณด๊ฐ„๋ฒ•์„ ๋”ฐ๋กœ ์„ค๋ช…ํ•˜๋Š๋ƒ, ๊ทธ ์ด์œ ๋Š” ๋นˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ๋ฐฉ์‹์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„์ง€๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ฒฐ์ •์— ๋‹ฌ๋ ธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฑ„์šฐ๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ์ธ์ง€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ์ธ์ง€ ์˜จ๋„ ๋ฐ์ดํ„ฐ์ธ์ง€ ์†๋„ ๋ฐ์ดํ„ฐ์ธ์ง€ ์„ฑ์  ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ด ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์ฑ„์šฐ๋Š” ๋ฐฉ์‹์ด ๋‹ค ๋‹ค๋ฅด๋‹ค! ๋ฌด์กฐ๊ฑด ํ‰๊ท ๊ฐ’์œผ๋กœ ์ฑ„์šฐ๋Š”๊ฒŒ ์ •๋‹ต์ด ์•„๋‹ˆ๋ผ๋Š” ๋ง. 

 

์ด์ œ ๋ณด๊ฐ„๋ฒ•์˜ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

๊ฒฐ์ธก์น˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ์ƒ ์ •๋ณด๋ผ๊ณ  ํ•˜์ž, ์ด๋•Œ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋Š” ์‹œ๊ฐ„ ์ˆœ์„œ๋‹ค. 

ex.

๋‚ ์งœ ๊ธฐ์ƒ ์ •๋ณด
2023.02.06 11:00 0๋„
2023.02.06 12:00 (missing data)
2023.02.06 13:00 4๋„

๋”ฐ๋ผ์„œ, ๊ฒฐ์ธก์น˜์— ๋Œ€ํ•ด์„œ๋Š” ์ง์ „ ์‹œ๊ฐ„๊ณผ ์งํ›„์‹œ๊ฐ„์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ณด๊ฐ„ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ๊ฒƒ์ด๋‹ค. 

์˜ค๋Š˜ ์‚ฌ์šฉํ•  ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜๋Š” ์•ž์˜ ๊ฐ’๊ณผ ์กด์žฌํ•˜๋Š” ๋’ค์˜ ๊ฐ’ ์‚ฌ์ด์˜ ๋นˆ ๊ฐ’์„ ์กฐ๊ธˆ์”ฉ ๋ณ€ํ™”์‹œ์ผœ๊ฐ€๋ฉฐ ์ฑ„์›Œ๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋‹ค๋ฅธ ์ฝ”๋“œ ํ•„์š”์—†์ด ๋ณธ ์ฝ”๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , ๋ณด๊ฐ„๋ฒ• ์ดํ›„ null ์œ ๋ฌด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ ์•„๋ž˜ print๋ฌธ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

df.interpolate(inplace=True)

print(df.isnull().sum())

 

 

๋‹ค์–‘ํ•œ ๋ณด๊ฐ„๋ฒ•์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ์— ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ ์ถ”์ฒœํ•œ๋‹ค! 

https://rfriend.tistory.com/264