[Day 66] Section3 Review
2022. 4. 27. 14:18ㆍAI/Codestates
728x90
반응형
Summary
- CLI ( Command 기반 ) - Keyboard
<-> GUI ( Graphic 기반 ) - Mouse- Top 5 기본 명령어
- pwd : 현재경로
- mkdir : 디렉토리 생성
- cd : 해당 디렉토리로 이동
- ls : 디렉토리안 파일 목록 출력
- cat : 파일 출력
- Top 5 기본 명령어
- python 가상환경 : 패키지 충돌을 일으키지 않기 위해 각 독립적인 환경을 만들어줌
- 아나콘다 가상환경
- conda creat --name {이름} python={버전}
- SQL ( Structured Query Language )
- DataBase 사용이유?
- 파일 크기가 커지게 되면 한줄한줄 읽어오는데 걸리는 시간이 오래걸림
- 기본키 : 테이블을 대표하는 키
- NOT NULL
- NO 중복
- 대표성을 가져야 함
- 외래키 : 두 테이블을 서로 연결하는데 사용되는 키
- 트랜잭션 : 일련의 작업들에 대한 연속처리 단위
- ACID
- Atomicity ( 원자성 ) : 전부성공하거나 전부실패해야 되어야 한다는 것
- Consustency ( 일관성 ) : 데이터베이스 상태는 이전과 같이 유효해야한다는 것
- Isolation ( 고립성 ) : 하나의 트랜잭션이 다른 트랜잭션과 독립되어야 한다는 것
- Durability ( 지속성 ) : 해당기록은 영구적이어야 한다는 것
- CSV 파일 합치기
import psycopg2
host = '***'
user = '***'
password = '***'
database = '***'
connection = psycopg2.connect(
host=host,
user=user,
password=password,
database=database
)
db_create = """CREATE TABLE passenger(
Id INT NOT NULL PRIMARY KEY,
Survived INT,
Pclass INT,
Name VARCHAR(128),
Sex VARCHAR(12),
Age FLOAT,
Siblings_Spouses_Aboard INT,
Parents_Children_Aboard INT,
Fare FLOAT
)"""
cur = connection.cursor()
cur.execute("DROP TABLE IF EXISTS passenger")
cur.execute(db_create)
connection.commit()
connection.close()
import pandas as pd
import os
import sqlalchemy
from sqlalchemy import create_engine
DATA_PATH = os.getcwd()
df = pd.read_csv(f'{DATA_PATH}/titanic.csv')
df = df.reset_index().rename(columns = {'index' : 'id'})
db_connection = create_engine('postgresql 주소')
df.columns = ['id', 'survived', 'pclass', 'name', 'sex', 'age', 'siblings_spouses_aboard', 'parents_children_aboard', 'fare']
conn = db_connection.connect()
dtypesql = {'id':sqlalchemy.types.INTEGER(),
'Survived':sqlalchemy.types.INTEGER(),
'Pclass':sqlalchemy.types.INTEGER(),
'Name':sqlalchemy.types.VARCHAR(128),
'SEX':sqlalchemy.types.VARCHAR(12),
'Age':sqlalchemy.types.FLOAT(),
'SSA':sqlalchemy.types.INTEGER(),
'PCA':sqlalchemy.types.INTEGER(),
'Fare':sqlalchemy.types.FLOAT()
}
df.to_sql(name='passenger', con=conn, if_exists='append', index=False,dtype=dtypesql)
- 파라미터 ( Parameter ) : 함수를 정의할 때 소괄호애 들어가는 것
- 인수 ( Arguments )
- 필수 인수 ( Required Arguments ) : 위치를 지키며 전달되는 인수
- 키워드 인수 ( Keyword Arguments ) : 파라미터 이름을 사용해 전달되는 인수
- 기본 인수 ( Defult Arguments ) : 파라미터에서 기본으로 사용되는 값
- 데코레이터 ( @ )
- 객체지향언어 : 객체를 사용하는 프로그래밍 방법
- 디버깅
- Python 3.7버전 이상 breakpoint() 사용
- Deepcopy
- Deepcopy를 하지 않은 상태에서는 새로운 값을 추가해주게 되면 두 변수 모두 값이 추가된다.
- 그래서 Deepcopy를 사용해서 컨테이너 주소값을 다르게 가져오고 할당된 값의 주소값은 가져오는 방식
- HTML ( Hyper Text Markup Language )
- Element : ex) head, body, div, li 등
- 마치 뼈대를 연상
- CSS ( Cascading Style Sheets )
- 마치 살과 옷을 연상
- JS
- 동적인 역할을 담당
- DOM ( Document Object Model ) : 문서객체모델
- Object들을 구조화 하는 것
- Requests 라이브러리 : 해당 url에 모든 값을 가져옴
# 설치 필요 터미널에서
pip install requests
url = www.naver.com
res = resquest.get(url)
# 값 불러오기 (str 형태로)
res.text
# res.content
- BeautifulSoup 라이브러리 : 예쁜 그릇에 원하는 스프를 담아서 골라 먹는 것처럼 사용한다는 뜻
# 설치 필요 터미널에서
pip install bs4
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text , 'html.parser')
soup
- Tip
# 네이버 영화 제일최근 영화코드 불러오기
soup, page = get_page(search_url)
sel = soup.select('.search_list_1 > li a')
movie_code = []
for ele in sel :
if movie_title.lower() in ele.text.lower() :
code = ele
movie_code.append(int(code.attrs['href'].split('=')[1]))
print(max(movie_code))
- Open API를 기업에서 제공하는 이유?
- 제 3의 수익창출
- 기업홍보
- 로드 밸런싱 ( 부하분산 )
- HTTP API = WEB API
- CRUD METHOD
- Create, Read, Update, Delete
- REST API
- GET : 데이터를 조회
- POST : 데이터를 생성
- PATCH : 데이터를 업데이트 ( 일부변경 )
- PUT : 데이터를 업데이트 ( 전체 변경 )
- DELETE : 데이터를 삭제
- 트위터 API
api_key = '***'
api_key_secret = '***'
access_token = '***'
access_token_secret = '***'
auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
- NoSQL ( Not Only SQL ) : 관계형 데이터베이스 모델을 사용하지 않음
- 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
- 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
- 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우
- MongoDB
- Pymongo
from pymongo import MongoClient
HOST = '***'
USER = '***'
PASSWORD = '***'
DATABASE_NAME = '***'
COLLECTION_NAME = 'openweather'
MONGO_URI = f"mongodb+srv://{USER}:{PASSWORD}@{HOST}/{DATABASE_NAME}?retryWrites=true&w=majority"
clt = MongoClient(MONGO_URI)
db = clt[DATABASE_NAME]
collection = db[COLLECTION_NAME]
- 하나의 데이터 삽입
collection.insert_one(openweather)
- 여러가지 데이터 삽입
collection.insert_many(dont_touch)
- 특정 부분만 find ( 0 : 추출하지 않음, 1 : 추출함 )
user_list = collection.find({}, {'_id' : 0, 'user' : {'login' : 1, 'id' : 1, 'node_id' : 1}})
- [ SQLite ] INSERT OR IGNORE : 해당 데이터가 없으면 INSERT
- Linux Container 란?
- 프로세스의 구획화 -> 공간분리
- 네트워크의 구획화 -> 각각의 독립적인 IP주소
- 파일 시스템의 구획화 -> 저장소의 분리
- Docker 란? : OS를 일치시켜주는 기술
- Register : Image 저장소 ex) LP를 모아둔 장소
- Image : CD와 같은 정적인 파일 또는 프로그램 ex) LP판
- Container : 실행중인 Image의 인스턴스 ex) LP 플레이어
- Docker 이미지 불러오기
docker image pull docker/whalesay:latest
- Docker 컨테이너 런
docker container run --name myName docker/whalesay:latest cowsay boo
- Docker 웹서버 구축
docker container run --name my_web --rm -p 818:80 httpd
- Docker copy
docker container cp ./ my_web:/usr/local/apache2/htdocs/
- Flask : 마이크로 웹 프레임 워크 -> 뭔가를 만들어 낼 수 있는 도구
- @app.route
- Bootstrap
Accordion
Build vertically collapsing accordions in combination with our Collapse JavaScript plugin.
getbootstrap.com
- WSGI : 서버와 어플/프레임 워크를 연결해주는 중간다리.
- Heroku : 클라우드 플랫폼 배포 서비스
- 대시보드 : 데이터를 표현하는 일종의 도구, 데이터를 시각화 해서 보기 쉽게 보고하기 위해 사용
- UTC : 영국을 기준으로 시차를 규정한 시간
- 객체부호화
- Pickle
import pickle
with open('model.pkl','wb') as pickle_file:
pickle.dump(model, pickle_file)
import pickle
model = None
with open('model.pkl','rb') as pickle_file:
model = pickle.load(pickle_file)
728x90
반응형
'AI > Codestates' 카테고리의 다른 글
[Deep Learning] Training Neural Network (0) | 2022.04.28 |
---|---|
[Deep Learning] Artificial Neural Network (0) | 2022.04.27 |
[Day 60 ~ Day 65] Section 3 Project (0) | 2022.04.26 |
[Day 59] Sprint Review (0) | 2022.04.15 |
[데이터 엔지니어링] 시간과 부호화 (0) | 2022.04.15 |