๐ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (External Libraries)
Python์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ๋ ํน์ ๊ฐ๋ฐ์๊ฐ ์ ๊ณตํ๋ ํจํค์ง๋ก, ๊ธฐ๋ณธ ์ค์น๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฐ์ดํฐ ๋ถ์, ์น ์คํฌ๋ํ, HTTP ์์ฒญ ๋ฑ ๋ค์ํ ์์
์ ์ ์ฉํ๋ฉฐ, pip
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํตํด ์ค์นํ ์ ์๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ์ค์น๊ฐ ํ์ํ๋ค.์ค์น ํ, import ํค์๋๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ค.
1. pandas
๋ฐ์ดํฐ ๋ถ์์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
pandas๋ ๋ฐ์ดํฐ ๋ถ์๊ณผ ์กฐ์์ ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ํ ์ด๋ธ ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ์ ํธ๋ฆฌํ๋ค. ๋ฐ์ดํฐํ๋ ์(DataFrame)์ด๋ผ๋ ๊ตฌ์กฐ๋ฅผ ํตํด ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์กฐ์ํ ์ ์๋ค.
- ์ค์น ๋ช
๋ น์ด:
pip install pandas
import pandas as pd
# ๋ฐ์ดํฐํ๋ ์ ์์ฑ
data = {'Name': ['Karina', 'Winter', 'Ningning', 'Giselle'], 'Age': [24, 23, 21, 23]}
df = pd.DataFrame(data)
print(df)
# ๋ฐ์ดํฐํ๋ ์์ ํน์ ์ด ์ถ๋ ฅ
print(df['Name']) # Output: Name ์ด์ ๊ฐ
# ๊ธฐ์ด ํต๊ณ ์ ๋ณด ์ถ๋ ฅ
print(df.describe()) # ๋ฐ์ดํฐ์ ํต๊ณ ์์ฝ ์ ๋ณด
# DataFrame์ Excel ํ์ผ๋ก ์ ์ฅ
df.to_excel('aespa_data.xlsx', index=False)
- to_excel() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ DataFrame์ Excel ํ์ผ๋ก ์ ์ฅํ ์ ์๋ค.( openpyxl ๋๋ xlsxwriter ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์น)
- ์ค์น ๋ช
๋ น์ด:
pip install openpyxl
- index=False: ์ด ์ต์ ์ DataFrame์ ์ธ๋ฑ์ค๋ฅผ ํ์ผ์ ํฌํจ์ํค์ง ์๋๋ก ์ค์ ํ๋ค. ๋ง์ฝ ์ธ๋ฑ์ค๋ฅผ ํฌํจํ๋ ค๋ฉด index=True๋ก ์ค์ ํ๊ฑฐ๋, ์ต์ ์ ์๋ตํ ์ ์๋ค.
โญ ํฐ๋ฏธ๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ
2. requests
HTTP ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
HTTP ์์ฒญ์ ์ฝ๊ฒ ๋ณด๋ผ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์น API๋ฅผ ํธ์ถํ๊ฑฐ๋ ์น ํ์ด์ง์ HTML์ ๊ฐ์ ธ์ฌ ๋ ์์ฃผ ์ฌ์ฉ๋๋ค.
- ์ค์น ๋ช
๋ น์ด:
pip install requests
โ GET ์์ฒญ
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # ์๋ต ์ํ ์ฝ๋ ์ถ๋ ฅ
print(response.json()) # JSON ํ์์ ์๋ต ๋ฐ์ดํฐ ์ถ๋ ฅ
- requests.get()๋ GET ์์ฒญ์ ๋ณด๋ด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋.
- https://api.github.com์ GitHub์ API ์๋ํฌ์ธํธ๋ก, ๊ธฐ๋ณธ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
- response.status_code: HTTP ์ํ ์ฝ๋ ์ถ๋ ฅ. 200์ ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ์๋ฏธํ๋ค.
- response.json(): JSON ํ์์ผ๋ก ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ค.
โ POST ์์ฒญ
import requests
data = {'key': 'value'}
response = requests.post("https://httpbin.org/post", data=data)
print(response.json()) # JSON ํ์์ ์๋ต ๋ฐ์ดํฐ ์ถ๋ ฅ
- requests.post(): POST ์์ฒญ์ ๋ณด๋ด๋ ๋ฉ์๋๋ก, ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์กํ ๋ ์ฌ์ฉํจ.
- data=data: ์๋ฒ๋ก ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํฉ๋๋ค. ์์์ฝ๋์์๋ {'key': 'value'}๋ผ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ฐ์ดํฐ๋ก ์ ์ก.
- https://httpbin.org/post: httpbin.org๋ ํ ์คํธ์ฉ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ์๋น์ค๋ก, ์์ฒญ์ ๊ทธ๋๋ก ๋๋๋ ค์ค๋ค.
- response.json(): JSON ํ์์ผ๋ก ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ค.
3. tqdm
๋ฐ๋ณต ์์ ์ ์งํ ์ํ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ํ๋ก๊ทธ๋ ์ค ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
- ์ค์น ๋ช
๋ น์ด:
pip install tqdm
์๋ ์ฝ๋๋ฅผ ์คํํ๋ฉด, 10๋ฒ์ ๋ฐ๋ณต ์์ ์ด ์งํ๋๋ ๋์ ๊ฐ ์์ ์ฌ์ด์ 0.1์ด์ฉ ์ง์ฐ๋๋ฉฐ ํ๋ก๊ทธ๋ ์ค ๋ฐ๊ฐ ์กฐ๊ธ์ฉ ์ฑ์์ง๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
from tqdm import tqdm
import time
# tqdm์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต ์์
์ ํ๋ก๊ทธ๋ ์ค ๋ฐ ์ ์ฉ
for i in tqdm(range(10)):
time.sleep(0.1) # ์์
์ ์ง์ฐ์์ผ ์งํ ์ํ๋ฅผ ํ์ธ ๊ฐ๋ฅํ๊ฒ ํจ
- for i in tqdm(range(10)): range(10)์ 0๋ถํฐ 9๊น์ง 10๋ฒ ๋ฐ๋ณต๋๋ ๋ฃจํ๋ฅผ ์์ฑํ๋ฉฐ, tqdm์ ํตํด ๊ฐ ๋ฐ๋ณต์ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ค๋ค.
- time.sleep(0.1): ๊ฐ ๋ฐ๋ณต ์ฌ์ด์ 0.1์ด์ ์ง์ฐ์ ์ถ๊ฐํ๋ค. ์ด ์ง์ฐ์ด ์์ผ๋ฉด ํ๋ก๊ทธ๋ ์ค ๋ฐ๊ฐ ๋๋ฌด ๋น ๋ฅด๊ฒ ์ง๋๊ฐ, ์งํ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค.
4. numpy
๋ฐฐ์ด ๋ฐ ํ๋ ฌ ์ฐ์ฐ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๋ฐ์ดํฐ ๋ถ์๊ณผ ๊ณผํ ๊ณ์ฐ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
- ์ค์น ๋ช
๋ น์ด:
pip install numpy
import numpy as np
# ๋ฐฐ์ด ์์ฑ ๋ฐ ์ฐ์ฐ
array = np.array([1, 2, 3, 4])
print(array * 2) # Output: [2 4 6 8]
# 2์ฐจ์ ๋ฐฐ์ด ์์ฑ
matrix = np.array([[1, 2], [3, 4]])
print(matrix)
5. matplotlib
๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๊ทธ๋ํ์ ์ฐจํธ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฐ ์ ์ฉํ๋ค.
- ์ค์น ๋ช
๋ น์ด:
pip install matplotlib
import matplotlib.pyplot as plt
# ๊ฐ๋จํ ๋ผ์ธ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line Plot')
plt.show()
'๐ฉโ๐ป hello, world! > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ ๊ธฐ์ด 10 - ๊ฐ์ ํ๊ฒฝ(virtual environment) (0) | 2024.11.03 |
---|---|
ํ์ด์ฌ ๊ธฐ์ด 08 - ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Standard Libraries) (1) | 2024.11.02 |
ํ์ด์ฌ ๊ธฐ์ด 07 - ๋ด์ฅํจ์ (0) | 2024.11.02 |
ํ์ด์ฌ ๊ธฐ์ด 06 - ์์ธ ์ฒ๋ฆฌ (0) | 2024.11.02 |
ํ์ด์ฌ ๊ธฐ์ด 05 - ๋ชจ๋, ํจํค์ง (1) | 2024.11.01 |