๐ŸŒต ์ฒ˜์Œ ์‹œ์ž‘ํ•œ ๋ธ”๋กœ๊ทธ์— ๋„ˆ๋ฌด ์‹ ์ด ๋‚˜์„œ ๊ทธ๋Ÿฐ์ง€ ํ•œ๋‹ฌ ์ „์ฏค ๊ทธ๋งŒ ํ—ˆ๋ฆฌ๋””์Šคํฌ๊ฐ€ ์ƒ๊ฒผ๋‹ค๐Ÿคข. ๊ทธ๋ž˜์„œ โ€˜๊พธ์ค€ํžˆโ€™ ๋ผ๋Š” ๋‚˜๋งŒ์˜ ๋ชฉํ‘œ์— ์•„์‰ฌ์›€์ด ์ƒ๊ฒผ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๊ทธ ๊ณต๋ฐฑ๊ธฐ ๋™์•ˆ ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋ฌด์—‡์ธ์ง€, ์ง€๊ธˆ ๋‹ค๋‹ˆ๋Š” ํ•™๊ต์—์„œ ์–ด๋–ค ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ๊ณต๋ถ€ํ•ด์•ผ ํ• ์ง€ ์ด๊ฒƒ์ €๊ฒƒ ์ƒ๊ฐํ•ด ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ ‡๊ฒŒ ํ•œ๋ฒˆ ์•„ํ”„๋ฉด์„œ ์ข‹์€ ์ž์„ธ๋„ ๊ฐ€์ง€๊ณ , ์ข‹์€ ํœด์‹๊ธฐ๋„ ๊ฐ€์ง€๋Š” ๊ฒŒ ๋‚˜์œ ๊ฒƒ๋งŒ์€ ์•„๋‹Œ ๊ฑฐ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๐ŸŒต ์ด์ œ ์ดํ‹€ ๋’ค๋ฉด ๊ฐœ๊ฐ•์ด๋‹ค. ๊ตฐ์ž…๋Œ€ ํ›„ 2๋…„๋งŒ์˜ ๊ฐœ๊ฐ•์ด๋ผ ๊ธฐ๋Œ€ ๋ฐ˜ ๋‘๋ ค์›€ ๋ฐ˜์ด์ง€๋งŒ, ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ๋ถ„์•ผ๋ฅผ ์ •ํ•ด๋†“์€ ์ƒํƒœ๋ผ์„œ ๊ธฐ๋Œ€ ์ชฝ์ด ์กฐ๊ธˆ ๋” ํฐ ๊ฒƒ ๊ฐ™๋‹คใ…Žใ…Ž ํ•™๊ธฐ ์ค‘์—๋Š” 12์›”์ฒ˜๋Ÿผ ๋งŽ์€ ๋‚ด์šฉ์„ ์˜ฌ๋ฆฌ๊ธฐ์—๋Š” ์‹œ๊ฐ„์ด ๋น ๋“ฏํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ (๊ทธ ์œ ๋ช…ํ•œ ์‚ฌ๋ง๋…„์ด๋‹คโ€ฆ) ํ•™๊ต ๊ณต๋ถ€์™€ ๊ทธ๋™์•ˆ ํ–ˆ๋˜ ๊ณต๋ถ€๋ฅผ ์˜ฌ๋ฆฌ๋ฉด์„œ ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ƒ๊ฐ์ด๋‹ค๐Ÿ˜‰. ์ผ์ฃผ์ผ์— ์„ธ๊ฐœ ์ด์ƒ์€ ํฌ์ŠคํŒ… ํ•˜๋Š” ๊ฒŒ ์ด๋ฒˆํ•™๊ธฐ ๋‚˜์˜ ๋ชฉํ‘œ๋‹ท!!


๐ŸŒต ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์‹œ๊ณ„์—ด ๋ถ„์„์—์„œ ๊ธฐ์ดˆ์ ์œผ๋กœ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผํ•  ์‹œ๊ฐ„ ๊ด€๋ จ ํ•จ์ˆ˜ pd.to_datetime( ) ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

๐ŸŒต ์ฒ˜๋ฆฌ ๊ธฐ์ค€์€ year - month - day ์˜ ํ˜•ํƒœ์ด๋‹ค.


1. pd.to_datetime( ) ๊ธฐ๋ณธ ๋ชจ์–‘

๐ŸŒต pd.to_datetime(series, format, errors)

  1. ์ฒ˜์Œ ๋“ค์–ด๊ฐ€๋Š” ์ธ์ˆ˜์ธ series ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ datetime ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜๋Š” ์—ด์„ ์„ ์–ธํ•œ๋‹ค.
  2. ๋‘๋ฒˆ์งธ ์ธ์ˆ˜ format์€ datetime์˜ ์›ํ•˜๋Š” ๋ชจ์–‘์„ ์ง€์ •ํ•ด์ค€๋‹ค.
    • %y : ๋…„๋„ (2์ž๋ฆฌ) - 99, 00, 01 โ€ฆ
    • %Y : ๋…„๋„ (4์ž๋ฆฌ) - 1999, 2000 โ€ฆ
    • %m : ์›” - 05, 08 โ€ฆ
    • %d : ๋‚ ์งœ (2์ž๋ฆฌ) - 07, 15, 21 โ€ฆ
    • %H : ์‹œ๊ฐ„ (24์‹œ๊ฐ„) - 15, 18, 23 โ€ฆ
    • %I : ์‹œ๊ฐ„ (12์‹œ๊ฐ„) - 3, 6, 11 โ€ฆ
    • %M : ๋ถ„ (2์ž๋ฆฌ) - 23, 56 โ€ฆ
    • %S : ์ดˆ (2์ž๋ฆฌ) - 36, 59 โ€ฆ

    • %a : ์š”์ผ (์งง์€ ์ด๋ฆ„) - Mon, Tue, Wed โ€ฆ
    • %A : ์š”์ผ (๊ธด ์ด๋ฆ„) - Monday, Tuesday, Wendsday โ€ฆ
    • %w : ์š”์ผ (์ˆซ์ž / 0์ด ์ผ์š”์ผ, 1์ด ์›”์š”์ผ) - 0, 1, 2 โ€ฆ

    • %b : ์›” (์งง์€ ์ด๋ฆ„) - Jan, Feb โ€ฆ
    • %B : ์›” (๊ธด ์ด๋ฆ„) - January, Febrary โ€ฆ
  3. ๋งˆ์ง€๋ง‰ ์ธ์ˆ˜ errors ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ฌ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ธ์ˆ˜์ธ๋ฐ, ๋ณดํ†ต errors = โ€˜raiseโ€™ ์˜ ํ˜•ํƒœ๋กœ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

2. month.day ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

๐ŸŒต ์˜ˆ๋ฅผ ๋“ค์–ด month ์™€ day๊ฐ€ โšช.โšช ์˜ ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ฆ‰ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

>>
m.d     col1    col2

2.26      A       1
2.27      B       3
3.05      A       2

์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” df [ m.d ] . str . replace ( โ€œ.โ€ , โ€œ-โ€œ ) ํ˜•ํƒœ๋กœ ์ง€์ •ํ•ด์„œ month-day ๊ฐ™์€ ๊ผด๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
๊ทธ ๋’ค์— pd . to_datetime ( โ€˜2022-โ€œ + df [ m.d ] , errors ) ๋ฅผ ์„ ์–ธํ•ด์ฃผ์ž.

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” 2022-02-26 ๊ฐ™์€ datetime column ์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.

๐ŸŒต ์ „์ฒด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

df[m.d] = df[m.d].str.replace(".", "-")
df['date'] = df.to_datetime("2022-" + df[m.d], errors = 'raise')
df
>>
m.d     col1    col2       date

2.26      A       1     2022-02-26
2.27      B       3     2022-02-27
3.05      A       2     2022-03-05

3. year, month, day ๊ฐ€ ๋ชจ๋‘ ๊ฐ๊ฐ์˜ column์ธ ๊ฒฝ์šฐ

๐ŸŒต ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ •ํ•ด๋ณด์ž.

>>
year    month   day

2022    02      26
2022    02      27
2022    03      05

๊ฐ€์žฅ ๋จผ์ € ํ•  ์ผ์€ ๊ฐ ์—ด์˜ ๋ฐ์ดํ„ฐ๋“ค์ด str ์ž๋ฃŒํ˜•์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ฏผ์•ฝ ๋””๋ฅธ ์ง€๋ฃŒํ˜•์ด๋ฉด df . astype ( โ€˜strโ€™ ) ์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ๋ฐ์ดํ„ฐ๋“ค์„ str ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ฃผ์ž.

๊ทธ ๋‹ค์Œ์—๋Š” pd . to _ datetime (df [ โ€˜yearโ€™ ] + โ€˜-โ€˜ + df [ โ€˜monthโ€™ ] + โ€˜-โ€˜ + df [ โ€˜dayโ€™ ], errors = โ€˜raiseโ€™ ) ๋ฅผ ์„ ์–ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐ŸŒต ์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

df = df.astpe('str)
df['date] = df.to_datetime(df['year'] + '-' + df['month'] + '-' + df['day'], errors = 'raise')
df
>>
year    month   day     date

2022    02      26      2022-02-26
2022    02      27      2022-02-27
2022    03      05      2022-03-05

๐ŸŒต ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ ํ•ฉ์น  ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๊ฐ€ ๋ฐ˜๋“œ์‹œ str ํ˜•ํƒœ์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋“ค์€ int ์ž๋ฃŒํ˜•์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— . info( ) ํ•จ์ˆ˜ ๋“ฑ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฏธ๋ฆฌ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค์€ ๋‹น์—ฐํžˆ ์›์ƒ๋ณต๊ตฌ ํ•ด์ฃผ๋Š” ํŽธ์ด ์ข‹๋‹ค๐Ÿ‘. ๋’ค์— ์žˆ์„ ๋‚จ์€ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ผญ ์ƒ๊ฐํ•ด์ฃผ์ž!!

Leave a comment