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

๐Ÿ๐ŸŽ๐Ÿ๐ŸŽ ๐›๐ซ๐ข๐ ๐ก๐ญ๐ข๐œ๐ฌ

[Brightics Studio ์‹ค์Šต] ์ „์ฒ˜๋ฆฌ (4) : ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

#๋ธŒ๋ผ์ดํ‹ฑ์Šค #๋ธŒ๋ผ์ดํ‹ฑ์Šค์ŠคํŠœ๋””์˜ค #Brightics #๋ธŒ๋ผ์ดํ‹ฑ์Šค์„œํฌํ„ฐ์ฆˆ #๋ฐ์ดํ„ฐ๋ถ„์„

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๊ฐ€, ์‹ค์—…๋ฅ  ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ด€์ฐฐ·์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„์  ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์ด๊ณ , ํ•œ ์‹œ์ ์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ทธ ์ด์ „(๊ณผ๊ฑฐ) ๋ฐ์ดํ„ฐ๋“ค์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด์—์š”.
๊ณผ๊ฑฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ˜„์žฌ ํ˜•ํƒœ์™€ ๋ฏธ๋ž˜ ์˜ˆ์ธก์— ๋Œ€ํ•œ ๋ถ„์„์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ถ„์„์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

์ด๋Ÿฌํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋„ ๋ถ„์„ ์ด์ „์— ์ „์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ํ…๋ฐ์š”,
์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๋ธŒ๋ผ์ดํ‹ฑ์Šค ์ŠคํŠœ๋””์˜ค๋กœ ์‹ค์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!


โ€ป ์ด ํฌ์ŠคํŠธ๋Š” PC ๋ฒ„์ „์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ์€ ๊ธ€์ด ๋‹ค์†Œ ๋‚œ์žกํ•ด๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ใ… ใ… 


๐›๐ซ๐ข๐ ๐ก๐ญ๐ข๐œ๐ฌ ๐ฉ๐ซ๐จ๐œ๐ž๐ฌ๐ฌ

ํ•ด๋‹น ์‹ค์Šต์€ Brightics AI ํ™ˆํŽ˜์ด์ง€์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ํŠœํ† ๋ฆฌ์–ผ ์ค‘ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค!

https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/234_py_time_preprocessing?type=insight

 

Brightics Studio

 

www.brightics.ai

์‹ค์Šต์— ์‚ฌ์šฉํ•œ ํŒŒ์ผ์€ ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด ๊ฐ€๋Šฅํ•œ,

234_py_time_preprocessing_energy_usage, 234_py_time_preprocessing_holiday_calendar ํŒŒ์ผ์ž…๋‹ˆ๋‹ค:)

 

๐Ÿ. ๐‹๐จ๐š๐

์ด์ œ๋Š” ์ต์ˆ™ํ•œ ์‹ค์Šต csv ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ! ๋‘ ๋ฐ์ดํ„ฐ์…‹์„ ๊ฐ๊ฐ ๋ถˆ๋Ÿฌ์˜จ ํ›„์— table์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋ฅผ ๊ฐ„๋‹จํžˆ ํ›‘์–ด๋ด…์‹œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์…‹(usage)์€
- timestamp [String] : ์—ฐ์›”์ผ ์‹œ๊ฐ„๋Œ€
- value [Double] : ์—๋„ˆ์ง€ ์‚ฌ์šฉ๋Ÿ‰
- temperature [Double] : ๊ธฐ์˜จ
- rain [Double] : ๊ฐ•์ˆ˜๋Ÿ‰
- humidity [Double] : ์Šต๋„
- wspeed [Double] : ํ’์†
์œผ๋กœ ๋ฌธ์žํ˜• ๋ณ€์ˆ˜ ํ•œ ๊ฐ€์ง€, ์‹ค์ˆ˜ํ˜• ๋ณ€์ˆ˜ ๋‹ค์„ฏ ๊ฐ€์ง€๋กœ ์ด ์—ฌ์„ฏ ๊ฐœ์˜ ๋ณ€์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ ,

๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์…‹(holiday)์œผ๋กœ๋Š”
- date [String] : ์—ฐ์›”์ผ
- holiday [Double] : ํœด์ผ์—ฌ๋ถ€
๋ฅผ ๋ณ€์ˆ˜๋กœ ๋‘๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์…‹์ด ์žˆ์–ด์š”.

* ์ฒซ ๋ฒˆ์งธ csv ํŒŒ์ผ์€ Load ํ•จ์ˆ˜ ๋‚ด Add Data ๊ณผ์ •์—์„œ ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ Double ๋กœ ์ธ์‹๋˜์—ˆ๋Š”๋ฐ,
์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ timestamp ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ String์œผ๋กœ ๋ฐ”๊พธ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค!

 

๊ทธ ์ค‘ ์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์…‹์€ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์ด๋‹ค๋ณด๋‹ˆ
X์ถ•์„ timestamp๋กœ ๋‘๊ณ  Y์ถ•์„ value๋กœ ๋‘๋ฉด ์ด์ฒ˜๋Ÿผ ์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ฅธ ์—๋„ˆ์ง€ ์‚ฌ์šฉ๋Ÿ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

์•ž์œผ๋กœ ๋ช‡ ๊ฐ€์ง€์˜ ์‹œ๊ณ„์—ด ์ „์ฒ˜๋ฆฌ๋ฅผ ์‹ค์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!
์‚ฌ์‹ค ์ด ๋ถ€๋ถ„ ํŠœํ† ๋ฆฌ์–ผ ๋‚ด์šฉ์ด ์‚ด์ง ์–ด๋ ค์› ๋Š”๋ฐ์š”,
์ตœ๋Œ€ํ•œ SQL์„ ๋‹ค๋ค„๋ณธ ์ ์ด ์—†์–ด๋„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ’€์–ด๋ณผ๊ฒŒ์š”!
์ผ๋‹จ ์ œ๊ฐ€ SQL์„ ์•„์ง ์ง์ ‘์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด๋ณธ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— (๏ฝก•ฬ๏ธฟ•ฬ€๏ฝก)

 


์ž ๊น, ์‹ค์Šต์ด ์–ด๋ ค์šธ ๋•Œ ๊ฟ€ํŒ ( •โŒ„• เฅ‚ )โœง

ํŠœํ† ๋ฆฌ์–ผ ์„ค๋ช…์ด ์ƒ์„ธํ•˜๊ฒŒ ์ ํ˜€ ์žˆ๊ธด ํ•˜์ง€๋งŒ, ์•„์ง ๋‚ด์šฉ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ํ•œ ๋ฒˆ์— ์™€๋‹ฟ์ง€ ์•Š์„ ๋•Œ์—๋Š”!

ํŠœํ† ๋ฆฌ์–ผ ๊ธ€ ํ•˜๋‹จ Data & Model ๋‹ค์šด๋กœ๋“œ ํƒญ์˜ ์ฐธ๊ณ  ๋ชจ๋ธ์„ ํ™œ์šฉํ•ด๋ณด์„ธ์š”!
json ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์•„์„œ ๋ธŒ๋ผ์ดํ‹ฑ์Šค ์ŠคํŠœ๋””์˜ค์—์„œ ๊ทธ๋Œ€๋กœ ์—ด์–ด ์‹คํ–‰์‹œํ‚ค๋ฉด?

ํŠœํ† ๋ฆฌ์–ผ ์™„์„ฑ ๋ชจ๋ธ ์ž์ฒด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ถ๊ธˆํ•˜๊ฑฐ๋‚˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ์ง์ ‘! ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”
์ฟผ๋ฆฌ ๋ถ€๋ถ„ ์ฝ”๋“œ๊ฐ€ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๊ฐ€์„œ, ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด์„œ ์–ด๋–ค ์ฝ”๋“œ์ธ์ง€ ํ•˜๋‚˜์”ฉ ๋ณต์‚ฌํ•ด๊ฐ€๋ฉด์„œ ์ดํ•ดํ•ด๋ณด๊ณ 
๋˜ ์™ผ์ชฝ input ๋ฐ์ดํ„ฐ์™€ ์˜ค๋ฅธ์ชฝ output ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํฌ๋กคํ•ด์„œ ๋น„๊ตํ•ด๊ฐ€๋ฉด์„œ ์–ด๋””๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ!

๋Œ€์‹  ๊ฑฐ๊ธฐ์„œ ๋๋‚˜๊ธฐ ์—†๊ธฐ ( •อˆแด—•อˆ)โ—ž ์ง์ ‘ ๋‹ค์‹œ ์‹ค์Šตํ•ด๋ด…์‹œ๋‹น



์•ž์œผ๋กœ ํ•  ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”.

usage ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š”
โ‘  ํŒŒ์ƒ๋ณ€์ˆ˜๋กœ ์—ฐ(year), ์›”(month), ์ผ(day), ์—ฐ ์ฃผ์ฐจ(week), ์š”์ผ(dayname) / ์‹œ๊ฐ(hour) ์ƒ์„ฑํ•˜๊ธฐ
โ‘ก ๋ณ€์ˆ˜์˜ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ๊ธฐ : ์š”์ผ์„ ์ˆซ์ž๋กœ, ์ผ~ํ†  = 0~6 / ์—ฐ ์ฃผ์ฐจ๋ฅผ 0-53์—์„œ 00-53 ํ˜•ํƒœ๋กœ

holiday ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š”
โ‘ข usage ๋ฐ์ดํ„ฐ์…‹์˜ timestamp๊ณผ holiday ๋ฐ์ดํ„ฐ์…‹์˜ date๋ฅผ ๋™์ผํ•œ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ์…‹ ํ•ฉ์น˜๊ธฐ
โ‘ฃ ํ•ฉ์น˜๋Š” ๊ณผ์ •์—์„œ wdh (์—ฐ ์ฃผ์ฐจ+์š”์ผ+์‹œ๊ฐ), dayhour(๋‚ ์งœ+์‹œ๊ฐ) ๋ณ€์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ

๋งˆ์ง€๋ง‰์œผ๋กœ, ํ•ฉ์นœ ๋ฐ์ดํ„ฐ์…‹์—์„œ
โ‘ค ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜ ์ œ๊ฑฐ, ๋ถ„์„์— ํ•„์š”ํ•œ ๋ณ€์ˆ˜ ์ˆ˜์ • ๋ฐ ์ƒ์„ฑํ•˜๊ธฐ
โ‘ฅ ๋ฐ์ดํ„ฐ์…‹์— ๋‹ค์‹œ ์ €์žฅํ•˜๊ธฐ (Unload ํ•จ์ˆ˜)

๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!
์ฐธ๊ณ ๋กœ ํŠœํ† ๋ฆฌ์–ผ์˜ SQL ๋ถ€๋ถ„์„ ์ตœ๋Œ€ํ•œ ๋ธŒ๋ผ์ดํ‹ฑ์Šค ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ์–ด ์‹ค์Šตํ•ด ๋ณด์•˜์–ด์š”.
๋•Œ๋ฌธ์— ํŠœํ† ๋ฆฌ์–ผ๊ณผ ์ˆœ์„œ๋„ ์กฐ๊ธˆ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! (๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ด์š”)

์•„์ง ๋ณ€์ˆ˜ ์ƒ์„ฑ, ์ˆ˜์ • ๋ฐ ์ œ๊ฑฐ์— ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜ ํฌ์ŠคํŠธ๋„ ํ•จ๊ป˜ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!

 

[Brightics Studio ์‹ค์Šต] ์ „์ฒ˜๋ฆฌ (1) : ๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ, ์ƒ์„ฑ, ๋ณ€๊ฒฝ๊ณผ ์ €์žฅ

#๋ธŒ๋ผ์ดํ‹ฑ์Šค #Brightics #๋ธŒ๋ผ์ดํ‹ฑ์Šค์ŠคํŠœ๋””์˜ค #BrighticsStudio #BrighticsAI #๋ฐ์ดํ„ฐ๋ถ„์„ #์‚ผ์„ฑSDS #๋ธŒ๋ผ์ดํ‹ฑ์Šค์„œํฌํ„ฐ์ฆˆ ์ง€๊ธˆ๊นŒ์ง€์˜ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ธŒ๋ผ์ดํ‹ฑ์Šค ์ŠคํŠœ๋””์˜ค์—์„œ์˜ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ๏ฟฝ๏ฟฝ

place-bo-effect.tistory.com

๐Ÿ. โ‘ ,โ‘ก : ๐ƒ๐ž๐œ๐จ๐ฆ๐ฉ๐จ๐ฌ๐ž ๐๐š๐ญ๐ž๐ญ๐ข๐ฆ๐ž & ๐€๐๐ (๐Ÿ๐ฎ๐ง๐œ๐ญ๐ข๐จ๐ง) ๐œ๐จ๐ฅ๐ฎ๐ฆ๐ง

๋จผ์ € ๋ณ€์ˆ˜ ๊ฐ’์—์„œ ์—ฐ, ์›”, ์ผ, ์—ฐ ์ฃผ์ฐจ์™€ ์š”์ผ ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” decompose datetime ํ•จ์ˆ˜๋กœ

โ‘ ๋ฒˆ ์‚ฌํ•ญ์ธ ํŒŒ์ƒ๋ณ€์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ๋ฅผ ์ง„ํ–‰ํ•ด๋ณผ๊ฒŒ์š”.

์ด ํ•จ์ˆ˜๋Š” input ์œผ๋กœ timestamp ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์˜ค๋ฅธ์ชฝ์ฒ˜๋Ÿผ ๋ณ€์ˆ˜๋ฅผ ์ถ”์ถœํ•ด์ค๋‹ˆ๋‹ค.
๋‹ค๋งŒ timestamp ๋ณ€์ˆ˜๊ฐ€ yyyyMMddHHmmss ํ˜•ํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋Ÿผ ์ด์ œ โ‘ , โ‘ก๋ฒˆ ํ•ญ๋ชฉ ์ค‘ ๋‚จ์€ ๊ฑด
โ‘ ์˜ ์‹œ๊ฐ ๋ณ€์ˆ˜ (hour) ์ƒ์„ฑํ•˜๊ธฐ
โ‘ก์˜ ์š”์ผ ๋ณ€์ˆ˜ (dow) : Sunday-Saturday๋ฅผ 0-6 ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•˜๊ธฐ
โ‘ก์˜ ์—ฐ ์ฃผ์ฐจ ๋ณ€์ˆ˜ : 0-53์„ 00-53 ํ˜•ํƒœ๋กœ ๋งŒ๋“ค๊ธฐ์ด์ฃ ?

์ด ๋ถ€๋ถ„์€ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” Query Executor๋ฅผ ํ†ตํ•ด์„œ SQLite ์ฝ”๋“œ๋กœ ํ’€์–ด๋ƒˆ๋Š”๋ฐ,
์ €๋Š” ์ด์ „ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์‚ฌ์šฉํ•œ Add function column๊ณผ Add column ํ•จ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด๋ณด์•˜์–ด์š”.

 

Add Function Column์œผ๋กœ hour ๋ผ๋Š” ์ด๋ฆ„์˜ ์‹œ๊ฐ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. 
substr(timestamp, 9, 2), ์ฆ‰ timestamp ๋ณ€์ˆ˜์—์„œ 9๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ ๋‘ ์ž๋ฆฌ๋ฅผ ๋ฝ‘์•„๋‚ด๋ฉด ์˜ค๋ฅธ์ชฝ๊ณผ ๊ฐ™์€ ์‹œ๊ฐ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๊ฒ ์ฃ ? 
Add Function Column๊ณผ Add Column ๊ด€๋ จ ์„ค๋ช…๋„ ์ด์ „ ๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ, ์ƒ์„ฑ, ๋ณ€๊ฒฝ ํฌ์ŠคํŠธ์— ์žˆ๋‹ต๋‹ˆ๋‹ค:D

 

์š”์ผ ๋ณ€์ˆ˜๋Š” ์•ฝ๊ฐ„์˜ ๋ณต๋ถ™(?)์ด ํ•„์š”ํ•œ๋ฐ์š”, Add column ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์œ„์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋ถ€์—ฌํ•ด์„œ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ์–ด๋ณด์•˜์–ด์š”!

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์—ฐ ์ฃผ์ฐจ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์„ ๊ฒƒ ๊ฐ™์•„์„œ Query Executor๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

SELECT *,
case when length(timestamp_week) = 1
then '0'||cast(timestamp_week as text)
else cast(timestamp_week as text)
end as week 
FROM  #{DF(0)}

week์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๋˜
timestamp_week ์˜ ๊ธธ์ด, ์ฆ‰ ๊ธ€์ž์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ์ฃผ๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ๋Œ€๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋Š” ์ฝ”๋“œ!

์ฐธ๊ณ ๋กœ ์œ„ ์„ธ ๊ฐ€์ง€๋ฅผ Query Executor๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅํ•œ SQLite ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์•„์š”.

 

SELECT * , strftime('%w', datetime(substr(timestamp,1,4)||'-'||substr(timestamp,5,2)||'-'||substr(timestamp,7,2))) AS dow
, cast(substr(timestamp,9,2) as double) as hour
, case when length(timestamp_week) = 1 then '0'||cast(timestamp_week as text) else cast(timestamp_week as text) end as timestamp_week2
, substr(timestamp,9,2) as timestamp_hour2
FROM  #{DF(0)}

/* timestamp_week2 ๋Š” ํ•ด๋‹น ํฌ์ŠคํŠธ์˜ week, timestamp_hour2๋Š” hour์ž…๋‹ˆ๋‹ค */

 

๐Ÿ‘. โ‘ข ๐ƒ๐š๐ญ๐ž๐ญ๐ข๐ฆ๐ž ๐…๐จ๐ซ๐ฆ๐š๐ญ๐ญ๐ž๐ซ & ๐‰๐จ๐ข๐ง

์ด์ œ ๋‘ ๋ฐ์ดํ„ฐ์…‹์˜ timestamp, date ๋ถ€๋ถ„์„ ์ ์ ˆํžˆ ๋‹ค๋“ฌ์–ด์„œ ์ด ๋‘ ๋ณ€์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ์…‹์„ ํ•ฉ์ณ๋ณผ๊ฒŒ์š”!
์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ timestamp๋Š” yyyyMMddHHmmss ํ˜•ํƒœ์ด๊ณ , date๋Š” yyyy-mm-dd ํ˜•ํƒœ๋ผ๋Š” ์ ์ด์—์š”.

Datetime formatter๋ฅผ ํ†ตํ•ด ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ํ˜•ํƒœ์™€ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€ ํ›„, Join ํ•จ์ˆ˜๋กœ ํ•ฉ์ณ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Datetime formatter๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋ณ€์ˆ˜๋ฅผ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๊พธ์–ด์ค„ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ธ๋ฐ์š”.

ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” holiday ๋ฐ์ดํ„ฐ์…‹์˜ date ๋ณ€์ˆ˜ ํ˜•ํƒœ๋ฅผ yyyyMMddHHmmss ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ์–ด์ฃผ์—ˆ๋Š”๋ฐ,
์ €๋Š” usage ๋ฐ์ดํ„ฐ์…‹์˜ timestamp ๋ณ€์ˆ˜๋ฅผ yyyy-MM-dd ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ์—ˆ์–ด์š”.

๊ทธ ์ด์œ ๋Š”! ํŠœํ† ๋ฆฌ์–ผ์ฒ˜๋Ÿผ ํ•˜๊ฒŒ ๋˜๋ฉด
์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” date ๋ณ€์ˆ˜๋Š” yyyyMMdd000000 ํ˜•ํƒœ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๊ณ ,
์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์•ž ์—ฌ๋Ÿ ๊ธ€์ž๋งŒ ํ™œ์šฉํ•œ๋‹ค! ๋ผ๋Š” ์กฐ๊ฑด์„ ํ•ฉ์น  ๋•Œ ๋” ๋ถ€์—ฌํ•ด์ฃผ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๋ธŒ๋ผ์ดํ‹ฑ์Šค ์ŠคํŠœ๋””์˜ค ํ•จ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” usage ๋ฐ์ดํ„ฐ์…‹ ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹ค๋Š” ๊ฒฐ๋ก !

์ฐธ๊ณ ๋กœ datetime formatter์˜ display mode๋ฅผ replace(๋Œ€์ฒด)๊ฐ€ ์•„๋‹Œ append(๋ง๋ถ™์ด๊ธฐ)๋ฅผ ์„ ํƒํ•ด์•ผ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

 

๋Œ€๋ง์˜ Join! ๋ฐฉ๊ธˆ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ์–ด์ฃผ๋ฉด์„œ ์ƒ๊ธด reformat_timestamp ๋ณ€์ˆ˜์™€ date ๋ณ€์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ์…‹์„ ํ•ฉ์ณ์ค๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋‹ˆ ์ œ๋Œ€๋กœ ํ•ฉ์ณ์ง„ ๊ฒƒ ๊ฐ™์•„์š”. (๋ณ€์ˆ˜๋Š” ๋‚˜์ค‘์— ์„ ํƒํ•œ ๊ฒƒ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ค‘๋ณต๋˜์–ด ์ƒ๊ฒจ๋„ ๊ดœ์ฐฎ์•„์š”.)

๊ทธ๋Ÿฐ๋ฐ holiday ๋ฐ์ดํ„ฐ์…‹์€ ํœด์ผ์ธ ๋‚ ์งœ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ฟ์ด๋ผ ํœด์ผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” null ๊ฐ’์ด๋„ค์š”.
ํ•˜์ง€๋งŒ null ๊ฐ’, ๊ฒฐ์ธก๊ฐ’ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๋„ ์ด์ œ ์ž˜ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ๊นŒ >_<

 

[Brightics Studio ์‹ค์Šต] ์ „์ฒ˜๋ฆฌ (2) : ๊ฒฐ์ธก๊ฐ’ ์ฒ˜๋ฆฌํ•˜๊ธฐ

#๋ธŒ๋ผ์ดํ‹ฑ์Šค #Brightics #๋ธŒ๋ผ์ดํ‹ฑ์Šค์ŠคํŠœ๋””์˜ค #BrighticsStudio #BrighticsAI #๋ฐ์ดํ„ฐ๋ถ„์„ #์‚ผ์„ฑSDS #๋ธŒ๋ผ์ดํ‹ฑ์Šค์„œํฌํ„ฐ์ฆˆ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‹œ์— ์›ํ•˜๋Š” ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ์•Œ๋งž์€ ํ˜•ํƒœ๏ฟฝ

place-bo-effect.tistory.com

Replace Missing Number ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด holiday ๊ฒฐ์ธก๊ฐ’์„ 0 (ํœด์ผ์ด ์•„๋‹ˆ๋‹ค)์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ๊ธฐ!

 

 ๐Ÿ’. โ‘ฃ ๐€๐๐ ๐…๐ฎ๐ง๐œ๐ญ๐ข๐จ๐ง ๐‚๐จ๐ฅ๐ฎ๐ฆ๐ง๐ฌ

โ‘ฃ๋ฒˆ์ธ wdh (์—ฐ ์ฃผ์ฐจ+์š”์ผ+์‹œ๊ฐ) ๋ณ€์ˆ˜์™€ dayhour (๋‚ ์งœ+์‹œ๊ฐ) ๋ณ€์ˆ˜ ์ƒ์„ฑ์€

์•„๊นŒ์™€ ๋™์ผํ•˜๊ฒŒ Add Function Columns ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

wdh ๋ณ€์ˆ˜๋Š” ์—ฐ ์ฃผ์ฐจ์™€ ์š”์ผ, ์‹œ๊ฐ์„ '-' ๋ฌธ์ž๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ , dayhour ๋ณ€์ˆ˜๋Š” timestamp์—์„œ 8์ž๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™”์–ด์š”.

 



์ฐธ๊ณ ๋กœ ์ด 3๋ฒˆ, 4๋ฒˆ ๊ณผ์ •์„ Query Executor๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

SELECT a.* 
, a.timestamp_week2||'-'||cast(a.dow as text)||'-'||a.timestamp_hour2 as wdh
, substr(a.timestamp, 5,8) as dayhour
, b.holiday
from  #{DF(0)} a left outer join  #{DF(1)} b
on substr(a.timestamp,1,8) = substr(b.date,1,8)

 

๐Ÿ“. โ‘ค ๐’๐ž๐ฅ๐ž๐œ๐ญ ๐‚๐จ๐ฅ๐ฎ๐ฆ๐ง

์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„๋“ค์€ ๊ฑฐ์˜ ๋๋‚˜๊ณ , ์ด์ œ ๋งˆ๋ฌด๋ฆฌ ๋‹จ๊ณ„!
Select Column ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋ณ€์ˆ˜ ์ด๋ฆ„๊ณผ type์„ ๋‹ค๋“ฌ์–ด์ฃผ๊ณ , ํ•„์š”์—†๋Š” ๋ณ€์ˆ˜๋Š” ์ œ๊ฑฐํ•ด์ค„๊ฒŒ์š”!
โ€‹
์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์ƒ๊ธด ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜๋“ค์€ ์ฒดํฌ ํ•ด์ œํ•ด์ฃผ๊ณ , ๋ถ„์„์— ์•Œ๋งž์€ ํ˜•ํƒœ๋กœ ์ด๋ฆ„๊ณผ type์„ ๋ฐ”๊พธ์–ด์ฃผ์—ˆ์–ด์š”.

 

์™„์ „ ๊น”๋”ํ•ด์„œ ์พŒ๊ฐ .. (?)

๐Ÿ”. โ‘ค ๐€๐๐ ๐Ÿ๐ฎ๐ง๐œ๐ญ๐ข๐จ๐ง ๐œ๐จ๐ฅ๐ฎ๐ฆ๐ง๐ฌ

weekday ๋Š” ํ‰์ผ์ผ ๋•Œ (dow ๊ฐ’์ด 0๊ณผ 6 ์‚ฌ์ด, ์ฆ‰ 0๊ณผ 6์ด ์•„๋‹Œ ๊ฐ’์ผ ๋•Œ) 1, ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ 0์ธ ๋ณ€์ˆ˜์ด๊ณ 
offday๋Š” ์ฃผ๋ง์ด๊ฑฐ๋‚˜ ๊ณตํœด์ผ์ผ ๋•Œ 1, ๊ทธ๋ ‡์ง€ ์•Š์„ ๋•Œ 0์ธ ๋ณ€์ˆ˜!

 

๐Ÿ•. โ‘ฅ ๐”๐ง๐ฅ๐จ๐š๐

์ด๋ ‡๊ฒŒ Unload ํ•จ์ˆ˜๋กœ ์›๋ž˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋ฎ์–ด์“ฐ๊ธฐ๋กœ ์ €์žฅ๊นŒ์ง€ ํ•˜๋ฉด ์‹œ๊ณ„์—ด ์ „์ฒ˜๋ฆฌ ๊ณผ์ •๋„ ๋!



์ด์ „ ์‹ค์Šต์— ๋น„ํ•ด ๋น„๊ต์  ๋‚œ์ด๋„๋„ ๋†’์€ ํŽธ์ด์—ˆ๊ณ , ํ”„๋กœ์„ธ์Šค ์ž์ฒด์˜ ๊ธธ์ด๋„ ๊ธด ํŽธ์ด๋ผ
์‹ค์Šต ๊ณผ์ •๋„, ๋ฆฌ๋ทฐ ๊ณผ์ •๋„ ์กฐ๊ธˆ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋Š”๋ฐ ๋‹ค ๋งˆ์น˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ์ •๋ง ๋ฟŒ๋“ฏํ•˜๋„ค์šฉ..

์ด์ฏค์—์„œ ์ „์ฒ˜๋ฆฌ ์‹ค์Šต๋„ ๋งˆ๋ฌด๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

๋‹ค๋ฃจ์ง€ ์•Š์•˜์ง€๋งŒ ์‹ค์Šตํ•ด๋ณด๊ธฐ ์ข‹์€ ์ „์ฒ˜๋ฆฌ ๊ณผ์ • ํŠœํ† ๋ฆฌ์–ผ๋„ ๋งŽ์ด ์žˆ์–ด์š” !
* ๋ฌธ์ž ๋ฐ์ดํ„ฐ์˜ ๋”๋ฏธ ๋ณ€์ˆ˜ ๋ณ€ํ™˜

https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/302_1_py_fifa_classification_preprocessing?type=insight

 

Brightics Studio

 

www.brightics.ai

* ๋‚ ์งœ ๊ด€๋ จ ์ „์ฒ˜๋ฆฌ ๋ฐ ํŒŒ์ƒ ๋ณ€์ˆ˜ ์ƒ์„ฑ

https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/25_0_py_Create_Date_Var?type=insight

 

Brightics Studio

 

www.brightics.ai

๋‹ค์Œ์—๋Š” EDA [Exploratory Data Analysis] ๊ณผ์ • ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด๋ณผ๊ฒŒ์š”!
์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.