๊ฐ์
์นด์นด์คํก ์ฑํ ๋ฐฉ์ ๋ํ ๋ด์ฉ์ ๋ค์ด๋ก๋ ํ ํ, ๋ํ ๋ด์ฉ์ ๋ถ์ํ์ฌ ์ ์๋ฏธํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ๋ค.
์ต์ข ๊ฒฐ๊ณผ
๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ์ ์, ์ต์ข ์ ์ผ๋ก ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ๊ฐ์ ์๋์ ๊ฐ๋ค.
๋๋ ๊ฐ์กฑ๋ค ๋จํก ๋ด์ฉ์ ์ถ์ถํ๋ค
์๊ตฌ์ฌํญ
1. ์นด์นด์คํก ์ฑํ ๋ฐฉ์์ ํ ์คํธ ํ์ผ์ ๋ถ๋ฌ์จ๋ค
2. ๋ถ๋ฌ์จ ํ ์คํธ ํ์ผ์ ๋ผ์ธ๋ณ๋ก ์ฝ๋๋ค
3. ์๋ณธ ๋ฐ์ดํฐ ํ์ผ์๋ ์๊ฐ์ด ์ค์ , ์คํ๋ก ์ ํ์์ผ๋ฏ๋ก 12์๊ฐ ํ์์ 24์๊ฐ ํ์์ผ๋ก ๋ณ๊ฒฝํ๋ ํจ์๋ฅผ ์์ฑํ๋ค.
4. ๋ฐ์ดํฐ์์ ๊ฒฐ๊ณผ ํ๋ ์์ ํ์ํ ์์๋ค์ ๋๋ ์ ์ถ์ถํ๊ธฐ ์ํด์ ์ฒ๋ฆฌ๋ฅผ ์งํํ๋ค.
5. ๋ฐ์ดํฐ ํ๋ ์์ ์์ฑํ์ฌ ์ํ๋ ์์์ ๋ง์ถฐ์ ์ถ๋ ฅํ๋ค.
์นด์นด์คํก ์ฑํ ๋ฐฉ์ ํ ์คํธ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
PC ์นด์นด์คํก์ ๋ค์ด๊ฐ์ ํ ์คํธ๋ฅผ ์ถ์ถํ๊ณ ์ถ์ ์นดํก๋ฐฉ์ ์ ์ํ์ฌ "๋ํ ๋ด๋ณด๋ด๊ธฐ"๋ฅผ ํด๋ฆญํ๋ค.
์์ ์ฌ์ง๋๋ก ๋ํ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํด๋ฆญํ๋ฉด ๋ํ ๋ด์ฉ๋ค์ ์๊ฐ๋๋ณ๋ก ํ ์คํธ๋ก ์ถ๋ ฅํ ์ ์๋ค.
์ฐ์ ์์ ํ ์คํธ ํ์ผ์ ์๋ง์ ์ด๋ฆ์ผ๋ก ์ ์ฅํ๊ณ , ํ ์คํธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ณต์ฌํด๋๋ค.
์๋ณธ ๋ฐ์ดํฐ ์ฝ๊ธฐ
์๋ณธ ๋ฐ์ดํฐ์์ ์๋ก ๋ค๋ฅธ ํ์์ ๊ฐ์ง ๋ผ์ธ ๋๊ฐ๋ฅผ ๊ฐ์ ธ์์ ํ์ธํ๋ค.
--------------- 2023๋ 3์ 24์ผ ๊ธ์์ผ ---------------
[์๋นต] [์คํ 2:16] ๐ ์ถ์ ๊ตํ
์๋ฒ์ง๊ฐ 3์ 24์ผ ๊ธ์์ผ ์คํ 2์ 16๋ถ์ ๋ณด๋ธ ๋ฉ์์ง์ด๋ค.
์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๋ฐ์ดํฐ ํ๋ ์์ columns์ ๋ค์ด๊ฐ์ผ ํ ๋ด์ฉ์ ์๋์ ๊ฐ๋ค.
Year | Month | Day | Day_of_Week | Time | Name | Message |
2023 | 03 | 24 | ๊ธ์์ผ | 14:16 | ์๋นต | ๐ ์ถ์ ๊ตํ |
- ์ฌ๊ธฐ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ฌ ์ ์๋ ๋ด์ฉ์ Time์ด๋ค. ์๋ณธ ๋ฐ์ดํฐ์๋ ์ค์ /์คํ๊ฐ ์ ๋ ฅ๋์ด์์ผ๋ฉฐ 12์๊ฐ ๊ธฐ์ค์ผ๋ก ์๊ฐ์ด ์ ํ์์ง๋ง, ์ต์ข ์ถ๋ ฅ๊ฐ์์ ์ํ๋ ๊ฑด 24์๊ฐ ํ์์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ํ์ฑํ ๋ ์๊ฐ์ ์ฒ๋ฆฌํ๋ ํจ์๋ฅผ ์์ฑํด์ผ ํ๋ค.
ํ ์คํธ ํ์ผ ๋ผ์ธ๋ณ๋ก ์ฝ๊ธฐ
์ฐ์ , ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ง๋ค์ด์ค์ผํ๊ธฐ ๋๋ฌธ์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
import pandas as pd
ํ ์คํธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ณต์ฌํ๊ณ ํด๋น ๊ฒฝ๋ก์ ๋ง๊ฒ ํ์ผ์ ์ฝ์ด์ผ ํ๋ค.
ํ ์คํธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํ๋์ ๋ณ์์ ์ ๋ ฅํ ํ, ํ์ผ์ ์ฌ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ ํ ๋ผ์ธ๋ณ๋ก ์ ์ฅํ๋ค.
with open(kakao_file, 'r', encoding='utf-8') as file:
lines = file.readlines()
์๊ฐ ํ์ ํ์ ๋ณํ ํจ์ ์์ฑ
์ฐ์ ํด๋น ํจ์๋ฅผ ์์ฑํ๊ธฐ ์ ์ ์ด๋ค ํจ์๋ฅผ ์์ฑํด์ผ ํ๋์ง์ ๋ํด ์๊ฐํด๋ณด์์ผ ํ๋ค.
24์๊ฐ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํจ์๋ช ์ covert_to_24hr๋ก ์ง๋๋ค.
def covert_to_24hr(time_str) :
ํจ์๊ฐ ํธ์ถ๋ ๋ ์ ๋ฌ๋๋ ๊ฐ์ ๋ฐ๊ธฐ ์ํด ์ธ์์ธ time_str์ ์ฝ์ ํ๋ค.
์ฌ๊ธฐ์ time_str๋ก ์ธ์๋ช ์ ์ง์ ํ ์ด์ ๋ ์๋ณธ ๋ฐ์ดํฐ์์ '์ค์ ', '์คํ' ๋ถ๋ถ์ ๋ฌธ์์ด์ด ํฌํจ๋ ์ธ์๋ฅผ ์๋ฏธํ๊ณ ํด๋น ๋ฌธ์๋ฅผ ์ญ์ ํ ํ์ time์ด๋ผ๋ ๋ณ์๋ฅผ ์ง์ ํ๋ค.
์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์๊ฐํด๋ณด์. ์๋ณธ ๋ฐ์ดํฐ ํ์์ [์คํ 2:16] ์ด๋ค.
๋จผ์ ์ค์ , ์คํ ๊ธ์๋ฅผ ์ญ์ ํด์ผ ํ๋ค.
replace ํจ์๋ฅผ ํ์ฉํ์ฌ ์ค์ , ์คํ ๋ฌธ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
if '์ค์ ' in time_str :
time = time_str.replace('์ค์ ', '')
elif '์คํ' in time_str :
time = time_str.replace('์คํ', '')
- ์ค์ ๊ณผ ์คํ๋ฅผ ๋๋ ์ด์ ๋ ์ค์ ์ ๋ฌธ์๋ฅผ ์๋ต๋ง ํ๋ฉด ๋์ง๋ง, ์คํ๋ ์๊ฐ + 12๋ฅผ ํด์ผ 24์๊ฐ ํ์์ผ๋ก ๋ณํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ์์ ์ฝ๋๋ฅผ ๊ฑฐ์น ์ดํ์ ๋ฐ์ดํฐ ์ํ๋ ์๋์ ๊ฐ๋ค
[์คํ 2:16] -> [ 2:16]
๊ทธ๋ ๋ค๋ฉด ์คํ์์ ์ : ๋ถ ์ค, ์๊ฐ ์ฆ hours์๋ง 12๋ฅผ ๋ํ๊ธฐ ์ํด์๋ hours์ minutes ๋ณ์๋ฅผ ๋ค์ ์ง์ ํด์ค์ผ ํ๋ค.
(์ฌ๊ธฐ์ ๊ฐ๊ณผํ๋ฉด ์๋๋ ๊ฒ์ ์ค์ 12์๋ 00์์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ๋ ์ฒ๋ฆฌํด์ค์ผ ํ๋ค.)
์ฐ์ ์์ ํจ์์์ hours์ minutes๋ฅผ ๋จผ์ ๋๋๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ์
๋๋๋ ํจ์๋ split์ ์ฌ์ฉํ ์ ์๋ค.
if '์ค์ ' in time_str :
time = time_str.replace('์ค์ ', '')
hours, minutes = map(int, time.split(':'))
elif '์คํ' in time_str :
time = time_str.replace('์คํ', '')
hours, minutes = map(int, time.split(':'))
- ๋ฐ์ดํฐ์์ :๋ฅผ ๊ธฐ์ค์ผ๋ก hours์ minutes๋ฅผ ์ ์ํด์ค๋ค
hours = 2
minutes = 16
์ด์ ์ค์ ์์๋ 12 ์ซ์๋ 0์ผ๋ก, ์คํ๋ 12๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ 12๋ฅผ ๋ํ๋ ์ฝ๋๋ฅผ ์์ฑํ ํ, hours์ munites์ด 2์๋ฆฌ ์๋ก ๋ฐํ๋๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค.
if '์ค์ ' in time_str :
time = time_str.replace('์ค์ ', '')
hours, minutes = map(int, time.split(':'))
if hours == 12:#์ค์ 12์๋ฅผ 00์๋ก
hours = 0
elif '์คํ' in time_str :
time = time_str.replace('์คํ', '')
hours, minutes = map(int, time.split(':'))
if hours != 12:#์คํ 12์๊ฐ ์๋๋ผ๋ฉด 12๋ฅผ ๋ํ๋๋ก
hours += 12
return f"{hours:02}:{minutes:02}"
- ์ฌ๊ธฐ๊น์ง ํ์ ๋ ๋ฐํ๋๋ ๊ฐ์ ์๋์ ๊ฐ๋ค
14:16
์์ ๊ฐ์ด ์๊ฐ์ ๋ณํํ๋ ํจ์๋ฅผ ์์ฑํ์ผ๋ฏ๋ก ๋ค์ ๊ธ์์ ๋ฐ์ดํฐ ํ๋ ์์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ๋ ฅํ๋ ํจ์๋ฅผ ์์ฑํด๋ณด๋ คํ๋ค.