[D+13] ๋ฐ์ดํฐ ๋ถ์์ ์ํ ํ์ด์ฌ(5) - ์ฝ๋ฉ(colab) csv, excel ํ์ผ ๋ถ๋ฌ์ค๊ธฐ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ , lambda ํจ์
โ๏ธ STUDY INDEX
1. ์ฝ๋ฉ(colab)์ csv, excel ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
2. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ
3. ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (List Comprehension)
4. lambda ํจ์
1. ์ฝ๋ฉ(Colab)์ csv, excel, txt. ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
์ง๋ [D+9] ํฌ์คํ ์์ ์ฝ๋ฉ(colab)์
๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ฃผํผํฐ ๋ ธํธ๋ถ ํ๊ฒฝ์ผ๋ก,
์น ์์์ ํ์ด์ฌ์ ์คํํ ์ ์๋๋ก ์ง์ํ๋ค๊ณ ์๊ฐ๋๋ ธ๋๋ฐ์.
์ค๋์ ์ฝ๋ฉ์ ๋ค์ํ ํฌ๋งท์ ๋ฐ์ดํฐ ํ์ผ์ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
๋์ค์ ์บ๊ธ์์ ํ๋ก์ ํธ๋ฅผ ์งํํ์ค ๋ ํ์ํ ์ ๋ ์์ผ๋๊น์! ์ ๊ณผ์ ๋ก ์ด๋ฒ์ ์ฒ์ ๋ฐฐ์ฐ๊ณ , ์งํํด ๋ดค์ด์!
STEP โ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋ง์ดํธํ๊ธฐ
- ๋จผ์ [์ค์] ๊ฐ๊ณ ์๋ ๋ฐ์ดํฐ ํ์ผ์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ํด๋์ ์ ๋ก๋ํด์ฃผ์ ์ผ ํด์.
- *๋๋ผ์ด๋ธ ๋ง์ดํธ(drive mount) : ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ํ์ผ์ ๋ก์ปฌ ํ๊ฒฝ์์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ ์์ ์ ์๋ฏธ
- ์๋ ์ฝ๋๋ฅผ ํตํด ๋๋ผ์ด๋ธ ๋ง์ดํธํ ์ ์์ด์.
from google.colab import drive
drive.mount('/content/drive')
STEP โก ์ฐ๊ฒฐํ๋ ค๋ ํ์ผ ๊ฒฝ๋ก ์ฝ๊ณ ๋ถ๋ฌ์ค๊ธฐ
- ํด๋น ํ์ผ์ ์ฝ๊ธฐ ์ํด์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ read_ํ์ผํฌ๋งท() ํจ์๋ฅผ ์ฌ์ฉํด์ผ ํด์.
- ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ ํ์ผ์ ๊ฒฝ๋ก ์ ๋ ฅํด์ฃผ์ธ์. *์ฐธ๊ณ . ์๋ ์ด๋ฏธ์ง์ฒ๋ผ ํด๋/ํ์ผ ์ฐํด๋ฆญ์ผ๋ก ๊ฒฝ๋ก ๋ณต์ฌ ๊ฐ๋ฅ!
- [์ค์] ํ์ผ ํฌ๋งท์ ๋ง๊ฒ ํ์ฅ์๋ช
์ ๋ค๋ฅด๊ฒ ์ค์ ํด์ฃผ์
์ผ ํด์.
csv ํ์ผ df = pd.read_csv('ํ์ผ๋ช .csv') *ํ์ผ๋ช ์ ํจ์๋ก ๋์ฒด ๊ฐ๋ฅ
excel ํ์ผ df = pd.read_excel('ํ์ผ๋ช .xlsx') - ํ์ผ ๊ฒฝ๋ก๋ ์ด๋ฐ ํํ๋ก ๊ตฌ์ฑ๋๊ณ , ๊ณต์ ๋๋ผ์ด๋ธ์์ ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ์ my drive๋ฅผ ' Shared drives'๋ก ๋ฐ๊ฟ์ฃผ์๋ฉด ๋ฉ๋๋ค.
/content/drive/Mydrive/<์ธ๋ถ ํด๋๋ช >/<ํ์ผ๋ช >
import pandas as pd
file_address = "/content/drive/MyDrive/sample_data/train.csv"
df = pd.read_csv(file_address)
2. ๋ฐ์ดํฐ ๋ถ์๊ณผ ๊ด๋ จ๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ
โ pandas : ๋ฐ์ดํฐ ์ ๋ ฌ, ํํฐ๋ง, ํต๊ณ ๋ถ์ ๋ฐ ์๊ฐํ ๋ฑ ๋ฐ์ดํฐ ์กฐ์๊ณผ ๋ถ์์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. 1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ํ ๊ตฌ์กฐ.
โก numpy : ๊ณ ์ฑ๋ฅ ์์น ๊ณ์ฐ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๋ค์ฐจ์ ๋ฐฐ์ด, ํ๋ ฌ ์ฐ์ฐ ์ง์
โข tensorflow : ๋ฅ๋ฌ๋, ๋จธ์ ๋ฌ๋์ ์ํ ๊ตฌ๊ธ์ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ. (ํ์ต์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ!)
โฃ matplotlib : ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์ ๊ทธ๋ํ, ํ์คํ ๊ทธ๋จ, ์ฐ์ ๋ ๋ฑ ๊ฐ๋ฅ.
โค seaborn : matplotlib ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์์, ํ ๋ง ๋ฑ์ ์ง์ํ์ฌ ๋ณด๋ค ํ๋ คํ ์๊ฐํ ๊ฐ๋ฅ!
ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์๋ ๋ฐฉ์์ผ๋ก ์ํฌํธํ์ฌ ํ์ด์ฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
(์ฎ์) ์ฌ์ค ์ ๋ ์์ง pandas ๋ฐ์ ์ฌ์ฉํด ๋ณธ ์ ์ด ์์ด์ใ ใ ์ด๋ง์ ์์ด๋ณด. ๋๋จธ์ง๋ ์ฐจ์ฐจ ๋ฐฐ์ฐ๊ฒ ๋๋ฉด ๋ธ๋ก๊ทธ์ ์ ํฌ์คํ ํด ๋ณด๊ฒ ์ต๋๋ค.
import pandas as pd
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import seaborn
3. ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (List Comprehension)
- ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด์.
- ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ : [ํํ์(๊ณ์ฐ) for x(๋ฐ๋ณต๋๋ ๊ฐ) in ๋ฐ๋ณตํ ๋ฐ์ดํฐ if ์กฐ๊ฑด๋ฌธ]
- ๋ง์ฝ ์ ๊ตฌ์กฐ์์ if ์กฐ๊ฑด๋ฌธ ๋ค์ else๊น์ง ์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด ์๋ ๊ตฌ์กฐ๋ก ์จ์ฃผ์ด์ผ ํจ! *์ธ๋ฒ์งธ ์ฝ๋ ์ฐธ๊ณ .
[ํํ์(๊ณ์ฐ) if ์กฐ๊ฑด๋ฌธ else ๋์ฒดํํ์ for ํญ๋ชฉ in ๋ฐ๋ณตํ ๋ฐ์ดํฐ]
# ์ฌ์ฉ์์ id๋ฅผ ๋๋ฌธ์๋ก ๋ณํํ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ. (์ ๋ง๋๋์ง๋ ๋ชจ๋ฆ. chat gpt๊ฐ ๋ฌธ์ ๋ด์ค)
user_id = input('input your id : ')
upper_list = [ a.upper() for a in user_id ]
# ๊ธฐ์กด ๋ฆฌ์คํธ *2 ํ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ
list_1 = [2,3, 4, 5,4]
list_2 = [ a*2 for a in list_1]
#๋ฆฌ์คํธ์์ ํ์๋ ๊ทธ๋๋ก, ์ง์๋ 0 ์ผ๋ก ๋ฐ๊พผ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ธฐ
old_list = [1, 3, 5, 8, 7, 13, 18]
new_list = [ a if a % 2 ==1 else 0 for a in old_list ]
print(new_list)
4. lambda ํจ์
- ๋๋ค ํจ์(lambda function)๋ ์ต๋ช ํจ์๋ก, ์ฃผ๋ก 1์ค๋ก ๋งค์ฐ ๊ฐ๋จํ๊ณ ํํ๋๋ ํจ์์์.
- ๊ฐ๋จํ ์ฐ์ฐ์ด๋ ์กฐ์์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ!
- def ๊ฐ ์๋ lambda ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ๊ณ , ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์ด์.
lambda ๋งค๊ฐ๋ณ์๋ค: ํํ์(๊ณ์ฐ) - ๋๋ค๋ ์๋ ํจ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ ๋ ๊ผญ ์ฐธ๊ณ ํด ์ฃผ์ธ์!
filter์ map์ ๋น์ทํ ๊ธฐ๋ฅ์ ํ๋๋ฐ '์กฐ๊ฑด ์ฌ๋ถ'์ ๋ฐ๋ผ ๊ณจ๋ผ์ ์ฌ์ฉํ๋ฉด ๋๊ฒ ์ด์ :)
filter( ์กฐ๊ฑด ํจ์, ๋ฐ๋ณตํ ๋ฐ์ดํฐ)
map (ํจ์, ๋ฐ๋ณตํ ๋ฐ์ดํฐ)
# ์ฃผ์ด์ง ๋ฆฌ์คํธ์์ ์ง์๋ง ๋ฐํํ ๋ฆฌ์คํธ ์์ฑํ๊ธฐ
list_1 = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x : x %2 ==0, list_1))
print(even_numbers)
# ๋ฆฌ์คํธ ์์๋ฅผ ์ ๊ณฑํ์ฌ ๋ฐํํ๋ ๋ฆฌ์คํธ ์์ฑํ๊ธฐ
list_2 = [1, 3, 4, 6, 7, 8, 10]
list_3 = list(map(lambda x : x** 2, list_2))
print (list_3)
[ TIL ] 2024. 5. 3
์ค๋์ ๊ณต๋ถ๋ ์ฌ๊ธฐ๊น์ง์ ๋๋ค.
์ด๋ฒ์๋ 5์ฃผ ์ฐจ์์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐ ์ ๋๋ง ์ ๋ฆฌํ์ต๋๋ค.
ํฌ์คํ ํ๋์ ๋ชจ๋ ๋ด๊ธฐ์ ๋ด์ฉ์ด ๋ฐฉ๋ํ๊ณ , ์ ๊ฐ ์์ง ๋ณต์ต์ ๋ ๋๋ด์ 2๋ฒ์ ๋๋ ์ ์ฌ๋ฆฌ๋ ค๊ณ ์!
์ด๋ฒ์ ํ์ด์ฌ ๊ณผ์ ๊ฐ ์ ๋ง ์ด๋ ค์ ์ด์(๋น์ ๊ณต, ์ ๋ฌธ์ ๊ธฐ์ค) ์ ๋ฅผ ํฌํจํ ์คํฐ๋ ํ์๋ค์ด ์์ฃผ ๋จธ๋ฆฌ๊ฐ ๋ง์ด ์ํ ์ต๋๋ค.. ๊ทธ๋๋ ์ด์ฐ์ด์ฐ ๋ชจ๋ ํ์ด์ ๊ต์ฅํ ๋ฟ๋ฏํ์ด์! ํํฐ๋๊ป์๋ ์์ผ๋ก pandas๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์กฐ์ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ ๊ฑฐ๋ผ๊ณ ํ์ จ๋๋ฐ, ๊ทธ ๋ถ๋ถ์ด ์๋นํ ๊ธฐ๋๊ฐ ๋ฉ๋๋ค!! ๊ธฐ์กด ๋ชจ๋์ ํ์ฉํ๋ ๊ฒ์ด๋ค ๋ณด๋, sql๊ณผ ๋น์ทํ ๋ฐฉ์์ด๋ฉด์ ํจ์ฌ ๊ฐ๊ฒฐํด ๋ณด์ด๋๋ผ๊ณ ์!! ์ผ๋ฅธ ๋ฐฐ์์... ์์ง์ ์ด๋ ค์ด ์ด ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๊ฐ์ ๋์ด๊ฐ๊ณ ์ถ์ต๋๋ค ใ ใ ์ด์ ์ค๋์ ์ ๋ง ๊ณผ์ ๋ก ๋จธ๋ฆฌ ์ํ ๋๋ ์ด์์ด์... ๐ฆ๐ ๋จธ๋ฆฌ ์ํ๋๊น ์์ด๋ค ๋ ธ๋ ๋ฃ๊ฒ ์ต๋๋ค. ์ ๋๋ฉ์ด์ ์ฃผ์ ๊ฐ ๋๋์ ์ ๊ฐ ์์ฃผ ํ์ฅํ๋ ์คํ์ผ์ ๋๋ค. ๋จธ๋ฆฌ ์ํ ๋ถ๋ค๊ป ์ถ์ฒํฉ๋๋ค.
(์ฌ์)์์ด๋ค((G)I-DLE) - '๋๋ ์ํ ๊ฑด ๋ฑ ์ง์์ด๋๊น(Fate)' LIVE CLIP