๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋น…๋ฐ์ดํ„ฐ (14)

DATA101

[Python] ์›” ๋‹จ์œ„ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™” ๋ฐ ์‹œ๊ฐํ™”ํ•˜๊ธฐ

๐Ÿ’ก ๋“ค์–ด๊ฐ€๋ฉฐ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์›” ๋‹จ์œ„๋กœ ์นด์šดํŒ…ํ•˜๊ณ  ์ด๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. 1. ํŒจํ‚ค์ง€ import import pandas as pd import numpy as np import matplotlib.pyplot as plt 2. ๋ฐ์ดํ„ฐ์…‹ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ํฌ์ŠคํŒ…์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ์…‹์€ ๊ณต์œ ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜์˜ค๋‹ˆ ํ•™์Šต ๋ชฉ์ ์œผ๋กœ๋งŒ ๋ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. DATASET = pd.read_csv('./dataset_app_review.csv') DATASET.head() 3. ๋ฐ์ดํ„ฐ ํƒ€์ž… ํ™•์ธ DATASET.dtypes ์•„๋ž˜์™€ ๊ฐ™์ด, ๋‚ ์งœ ์ •๋ณด(date)๋Š” ํ˜„์žฌ ์ •์ˆ˜ํ˜•(int)์ž…๋‹ˆ๋‹ค. ํŽธ๋ฆฌํ•˜๊ฒŒ ๋‚ ์งœํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ด๋ฅผ datetime ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ”์ค„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 4. ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€๊ฒฝ "์—ฐ-..

[Python] Numpy ๊ธฐ๋ฐ˜ ํŠน์ • ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ ์ฐพ๊ธฐ/๋ฐ”๊พธ๊ธฐ(One-hot Encoding)

๐Ÿ’ก ๋“ค์–ด๊ฐ€๋ฉฐ Numpy ํŒจํ‚ค์ง€์˜ where ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ numpy ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ import๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. !pip install numpy import numpy as np 1. ์กฐ๊ฑด์— ๋งž๋Š” ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜ ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐ๊ฑด๋ฌธ์„ ์ž…๋ ฅํ•˜๋ฉด, ์กฐ๊ฑด์— ํ•ด๋‹น๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. np.where(์กฐ๊ฑด๋ฌธ) ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์…‹์ด ์žˆ์„ ๋•Œ, THK ์นผ๋Ÿผ ๋‚ด ๊ฐ’์ด 30๋ณด๋‹ค ํฐ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์กฐํšŒํ•ด ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. np.where(30 < DATASET_RAW['THK']) 2. ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ธ์ฝ”๋”ฉ ์•„๋ž˜์™€ ๊ฐ™์ด, ์กฐ๊ฑด๋ฌธ๊ณผ ํ•จ๊ป˜ ์กฐ๊ฑด๋ฌธ์ด ์ฐธ ํ˜น์€ ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ๊ฐ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•  ๊ฐ’์„ ์ž…๋ ฅํ•ด ..

[Python] pandas ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋ฌธ์ž์—ด ๋ฐ”๊พธ๊ธฐ(replace, str.replace ํ•จ์ˆ˜)

๐Ÿ’ก ๋“ค์–ด๊ฐ€๋ฉฐ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋‚ด ๋ฌธ์ž์—ด ํ•œ ๊ธ€์ž๊นŒ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ์›์†Œ๋ฅผ ์ฐพ๋Š”์ง€ ํ˜น์€ ์ผ๋ถ€ ๊ธ€์ž๋ผ๋„ ์ผ์น˜ํ•˜๋Š” ์›์†Œ๋ฅผ ์ฐพ์„์ง€์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ•จ์ˆ˜๊ฐ€ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค(์•„๋ž˜ ํ‘œ ์ฐธ๊ณ ).No.ํ•จ์ˆ˜ํ™œ์šฉ๋ฐฉ์•ˆ1replace()์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ฐพ์•„ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ2str.replace()์ผ๋ถ€ ๋‹จ์–ด๋ผ๋„ ์ผ์น˜ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ฐพ์•„ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐํ•จ์ˆ˜๋ณ„๋กœ ๊ฐ๊ฐ ์ž์„ธํžˆ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.๐Ÿ“š ๋ชฉ์ฐจ1. replace ํ•จ์ˆ˜ 1) ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• 2) ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ๋™์‹œ ๋ณ€๊ฒฝ 3) ํŠน์ • ์นผ๋Ÿผ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ 4) ์›๋ณธ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์˜ต์…˜(inplace)2. str.replace ํ•จ์ˆ˜1) ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•๋‚ด์žฅ ํ•จ์ˆ˜ replace๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ๋‚ด ํŠน์ • ๋ฌธ์ž์—ด๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ฐพ์•„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.df.replace('ํ˜„์žฌ ..

Boxplot ๊ทธ๋ž˜ํ”„ ํ•ด์„๋ฐฉ๋ฒ•(์ด์ƒ์น˜ ํƒ์ƒ‰๋ฐฉ๋ฒ•)

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” Boxplot๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.์•„๋ž˜ ๊ทธ๋ฆผ 1๊ณผ ๊ฐ™์ด ์„ธ๋กœ์ถ•์€ ํŠน์ • ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์ด ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๋กœ ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค ์•ˆ์— ๋ถ„ํฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ž€์ƒ‰ ๋ฐ•์Šค ๊ฐ€์šด๋ฐ ๋…ธ๋ž€์ƒ‰ ์ง์„ ์œผ๋กœ ํ‘œ์‹œํ•œ ๋ถ€๋ถ„์ด ๋ฐ์ดํ„ฐ์˜ ์ค‘์•™๊ฐ’(Median)์ด ๋ฉ๋‹ˆ๋‹ค.๋ฐ•์Šค ์ตœ์ƒ๋‹จ์€ ์ œ3 ์‚ฌ๋ถ„์œ„์ˆ˜(Q3, 75th percentile), ์ตœํ•˜๋‹จ์€ ์ œ1 ์‚ฌ๋ถ„์œ„์ˆ˜(Q1, 25th percentile)์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ถ„์œ„์ˆ˜(Quantile)๋ž€ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ ๋‹ค์Œ 25%์”ฉ ๋™์ผํ•œ ๋น„์œจ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ œ1 ์‚ฌ๋ถ„์œ„์ˆ˜(Q1)๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์ „์ฒด ์ค‘ 25% ๋น„์œจ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ(25%) ์˜๋ฏธํ•˜๊ณ , ์ œ3 ์‚ฌ๋ถ„์œ„์ˆ˜(Q3)๋Š” ์ค‘์•™๊ฐ’(50%)์—์„œ๋ถ€ํ„ฐ 25% ๋น„์œจ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ..

[Python] ์œ ํŠœ๋ธŒ ์ฝ˜ํ…์ธ  ํฌ๋กค๋Ÿฌ ์ฝ”๋“œ Version 1.0.1

๐Ÿ“ ๋ชฉ์ฐจ Update Log 1. ์ฃผ์š” ๊ธฐ๋Šฅ 2. ํฌ๋กฌ ์„ค์น˜ 3. ์ „์ฒด ์ฝ”๋“œ 4. ํŒจํ‚ค์ง€ ์„ค์น˜ 5. ์ฝ”๋“œ ์„ค๋ช… ๐Ÿ›  Update Log ๐Ÿ‘ Version 1.0.1 @ 2022-10-11 (1) ์ฝ˜ํ…์ธ  ์กฐํšŒ์ˆ˜ ๋ฐ ์—…๋กœ๋“œ์ผ ์ถ”์ถœ ๋กœ์ง ์ถ”๊ฐ€ Heo Jin ๋‹˜ ์š”์ฒญ์‚ฌํ•ญ์œผ๋กœ ์ถ”๊ฐ€ ๋ฐ ํ…Œ์ŠคํŠธ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. ์ฃผ์š” ๊ธฐ๋Šฅ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์œ ํŠœ๋ธŒ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ฝ˜ํ…์ธ ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” Scraper๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. โ€ป Scrap์ด๋ž€?('๋”๋ณด๊ธฐ' ํด๋ฆญ) ๋”๋ณด๊ธฐ Scrap[์Šคํฌ๋žฉ]์€ ์›น ํŽ˜์ด์ง€์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ–‰๋™์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ Data Scraping์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ Data Scraper ๋˜๋Š” Web Scraper๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. (1) ์ˆ˜์ง‘ ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜ - ์ฝ˜ํ…์ธ  ์ œ๋ชฉ - ์ฝ˜ํ…์ธ  ๋งํฌ - ์กฐํšŒ์ˆ˜ - ์—…..

PySpark ๊ฐœ๋… ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ(+Apache Spark)

๋“ค์–ด๊ฐ€๋ฉฐ PySpark, ๋ฐ์ดํ„ฐ ๋ถ„์„/์—”์ง€๋‹ˆ์–ด๋ง ํ˜น์€ ์ธ๊ณต์ง€๋Šฅ ๋ถ„์•ผ์— ๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ํ•œ ๋ฒˆ์ฏค ๋“ค์–ด๋ณด์…จ์„ ๊ธฐ์ˆ  ์Šคํƒ์ด์ฃ . ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” PySaprk์˜ ๊ฐœ๋…๊ณผ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 1. PySpark ๊ฐœ๋… PySpark๋Š” Python ํ™˜๊ฒฝ์—์„œ Apache Spark๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ฆ‰, PySpark๋Š” Spark์šฉ API์ด๊ธฐ ๋•Œ๋ฌธ์— PySpark ๊ฐœ๋…์„ ์ดํ•ดํ•˜๋ ค๋ฉด Spark์— ๋Œ€ํ•ด ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Apache Spark ๊ฐœ๋… Apache Spark๋Š” ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์†์œผ๋กœ, ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น…๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ํ”Œ๋žซํผ(Distributed Computing Platform)์ž…๋‹ˆ๋‹ค. Apache Spark๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋“œ๋””์Šคํฌ๊ฐ€ ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ์— ์บ..