[Week 7] Day 1 - TIL

๐Ÿ“ Topics

- Pandas

- Anaconda

 

โœ๏ธ ๋ฐ์ดํ„ฐ ๋ถ„์„

๋ฐ์ดํ„ฐ ๋ถ„์„์€ ์•„๋ž˜์˜ 4๊ฐ€์ง€ ๊ณผ์ •์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

1. Data Preprocessing

๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹จ๊ณ„๋กœ์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋œ๋‹ค.๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ -> ๋ฐ์ดํ„ฐ ์ •์ œ -> ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ -> ๋ฐ์ดํ„ฐ ์ถ•์†Œ -> ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜

 

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ, ๊ฒฐ์ธก๊ฐ’ ๋ณด์ •, ๋ฐ์ดํ„ฐ ์—ฐ๊ณ„/ํ†ตํ•ฉ, ๋…ธ์ด์ฆˆ ์ œ๊ฑฐ, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ณ€๊ฒฝ, outlier detection, feature engineering ๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.

 

2. Data Analysis - visualization

๊ฐ€๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์œ ์šฉํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋„์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ ๋ถ„์„์ด๋ผ๊ณ  ํ•˜๊ณ 

๋ถ„์„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•œ๋‹ค.

 

Insight
๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ์˜ ์ธ์‚ฌ์ดํŠธ๋Š” ์ด 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.
์ฒซ๋ฒˆ์งธ๋กœ ์›์ธ - ๊ฒฐ๊ณผ ์ธ๊ณผ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ณผ์ถ”๋ก  ํ†ต์ฐฐ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ์™€
๋‘๋ฒˆ์งธ๋กœ ํ†ต๊ณ„์  ์ง€์‹์„ ๊ฐ€์ง€๊ณ  ํ•ด์„ํ•˜์—ฌ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ํ†ต๊ณ„์  ํ†ต์ฐฐ์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ.
๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฒฐ๊ณผ๋กœ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๋ก ์„ ๋„์ถœํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ธ์‚ฌ์ดํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

3. Data mining

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„, ํŒจํ„ด, ๊ทœ์น™์„ ์ฐพ์•„๋‚ด์–ด ์œ ์šฉํ•œ ์ •๋ณด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

 

4. Data modeling

์ •๋ณด ์‹œ์Šคํ…œ ๊ตฌ์ถ•์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์—…๋ฌด ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ณ  ์ดํ•ดํ•˜์—ฌ ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

Pandas

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Google์ด ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ Jupyter Notebook ํ™˜๊ฒฝ์„ Google colab ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, Python code๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ML, DL, Data Analysis ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ข‹๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ์ด Google colab ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‹ค์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค.

 

Cell : ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ฑฐ๋‚˜ ์„ค๋ช… ํ…์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” block

Code cell Text cell
Crtl / Shift / Alt + Enter ํ†ตํ•ด ์‹คํ–‰ ๊ฐ€๋Šฅ
Ctrl + Enter : ์‹คํ–‰ ํ›„ ํ‚ค๋ณด๋“œ ์ปค์„œ๊ฐ€ ์…€ ๋‚ด ๊ทธ๋Œ€๋กœ
Shift + Enter : ์‹คํ–‰ ํ›„ ํ‚ค๋ณด๋“œ ์ปค์„œ๊ฐ€ ๋‹ค์Œ ์…€๋กœ
Alt + Enter : ์‹คํ–‰ ํ›„ ์ƒˆ code cell ์ƒ์„ฑ, ํ‚ค๋ณด๋“œ ์ปค์„œ๊ฐ€ ๋‹ค์Œ cell
์ž…๋ ฅ ๋ฌธ๋ฒ•์„ Markdown ๋ฌธ๋ฒ•์— ๋”ฐ๋ฆ„

 

 

 

  • ํ•„์š” ๋ชจ๋“ˆ ์ฐธ์กฐ
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

 

numpy๋Š” ์ธ๊ณต์ง€๋Šฅ, ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ์ด๋‹ค. matplotlib๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ์ธ๋ฐ, ์š”์ฆ˜์€ seaborn์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

 

  • Colab ์‚ฌ์šฉ

1. Notebook ํ™˜๊ฒฝ์—์„œ๋Š” ๋งˆ์ง€๋ง‰์˜ return ๊ฐ’์ด ์ถœ๋ ฅ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋จ

 

Google colab์€ ํ•˜๋‚˜์˜ sell์ด colab์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ธ๋ฐ, ๊ทธ sell ์•ˆ์— ์กด์žฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์‹คํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ sell์—์„œ ๋งˆ์ง€๋ง‰ return ๊ฐ’์ด ํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

2. Google colab์—์„œ chart๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” option์ด ์กด์žฌํ•œ๋‹ค.

 

Python Pandas ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ loadํ•˜์—ฌ df๋ผ๋Š” variable name์œผ๋กœ ์ง€์ •ํ•œ ๊ฒƒ์ด๋‹ค. ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋งˆ์ง€๋ง‰ return ๊ฐ’์ด ํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅ๋˜๋ฏ€๋กœ df๋ผ๋Š” dataframe์ด ์ถœ๋ ฅ๋˜๊ณ  ์žˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ "Suggest charts" ๋ผ๋Š” Option์ด ์กด์žฌํ•˜๋Š”๋ฐ, Google colab์—์„œ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๊ฐ์ข… ์‹œ๊ฐํ™”๋œ ์ฐจํŠธ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.

 

  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ์˜ํ•  ์ 

๋งˆ์ง€๋ง‰ ์ค„์— ๋ณด๋ฉด memory usage ๋ผ๊ณ  ์ ํ˜€ ์žˆ๋Š”๋ฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ์ฃผ์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์œ„ ๋ฐ์ดํ„ฐ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์—†์ง€๋งŒ, ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ๋งŽ์œผ๋ฏ€๋กœ ํ•ญ์ƒ ์ƒ๊ฐํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 

3. ํ•œ๊ธ€ ํฐํŠธ ์ด์Šˆ ํ•ด๊ฒฐ

 

google colab์€ ํ•œ๊ธ€ ํฐํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ๊ธ€์ด ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, Local์—์„œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ colab ๋‚ด๋ถ€์—์„œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

# ํ•œ๊ธ€ ํฐํŠธ ์ด์Šˆ ํ•ด๊ฒฐ - ๋กœ์ปฌ
import os
import matplotlib.pyplot as plt
if os.name == "posix" :
    plt.rc("font", family = "AppleGothic")
else:
  plt.rc("font", family = "Malgun Gothic")
  
 # ํ•œ๊ธ€ ์ด์Šˆ ํ•ด๊ฒฐ - Colab
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

 

 

  • File ํ•จ์ˆ˜

ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์ด Pandas์— ์กด์žฌํ•œ๋‹ค. R์— ๋Œ€ํ•œ ์ง€์‹์ด ์žˆ๋Š”๋ฐ, R๊ณผ ๋น„์Šทํ•œ ๋ถ€๋ถ„์ด ์žˆ๋Š” ๊ฒƒ์ด R์—์„œ๋„ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋ช‡ ๊ฐœ์˜ ํ•จ์ˆ˜๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ๋‹ค.

ํ•จ์ˆ˜ ์„ค๋ช… Option
pandas.read_csv    
pandas.read_table    
pandas.read_excel .xlsx ํŒŒ์ผ์„ ์ฝ๋Š” ํ•จ์ˆ˜  
     

 

์—ฌ๊ธฐ์„œ ํŠน์ง•์„ ํ•˜๋‚˜ ์‚ดํŽด๋ณด์ž๋ฉด pandas์—์„œ file์„ ์ฝ๊ณ  ๋‚œ ํ›„ ๋ฐ˜ํ™˜๊ฐ’์€ ๋ฐ˜๋“œ์‹œ dataframe ์œผ๋กœ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

  • Dataframe - Series

Dataframe์€ 2์ฐจ์› ์ž๋ฃŒ ํ˜•ํƒœ์ด๊ณ , ํ‘œ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.  Series๋Š” 1์ฐจ์› ์ž๋ฃŒ ํ˜•ํƒœ์ด๊ณ  ํ‘œ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ .

 

 

'Bootcamp' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Week 11] Day 2 - TIL  (1) 2024.02.06
[Week 11] Day 1 - TIL  (0) 2024.02.05
[Week 10] Day 1 - TIL  (2) 2024.02.05
[Week 8] Day 4 - TIL  (4) 2024.01.12
[Week 8] Day 1 - TIL  (2) 2024.01.08