๐Ÿ’กPython

[D+13] ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ํŒŒ์ด์ฌ(5) - ์ฝ”๋žฉ(colab) csv, excel ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜, lambda ํ•จ์ˆ˜

๊น€์ˆฎ์—‰ 2024. 5. 3. 21:06

๊ฒฝ ๐Ÿ”ฅ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ์ข…ํ•ฉ๋ฐ˜ ์™„๊ฐ• ๐Ÿ”ฅ ์ถ•

โœ๏ธ 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