<jupyter_start><jupyter_text>ETL (Extract Transform Load)ETL은 추출(Extract), 변환(Transform), 적재(Load)를 뜻한다. 컴퓨팅에서 데이터베이스 이용의 한 과정으로 특히 데이터 웨어하우스에서 다음을 말한다. 이는 데이터를 다루는 IT쪽 용어이다.- 동일 기종 또는 타기종의 데이터 소스로부터 데이터를 추출.- 조회 또는 분석을 목적으로 데이터를 적절한 포맷이나 구조로 데이터를 저장하기 위해 데이터를 변환.- 변환 데이터를 적재.  일단 데이터를 불러서 와서 하나씩 해보자.<jupyter_code>import pandas as pd
df = pd.read_csv("ranging_stock_df_python3.csv")
df<jupyter_output><empty_output><jupyter_text>1. 추출(Extract)필요한데이터 칼럼을 추출한다고 이해하도록 하자.필요한 데이터는 종목명, 종목코드, 시장구분이다 이것을 이용해 나중에 날짜를 넣어 주식데이터를 불러올것이다. 링크는 아래 링크를 참고하자.- [주식 정보 수집을 위한 사전준비 및 연습](https://uikang.tistory.com/88)- [[python]외부변수 설정](https://uikang.tistory.com/93)<jupyter_code>df_extract = df[["종목명","종목코드","시장구분"]]
df_extract<jupyter_output><empty_output><jupyter_text>2. 변환(Transform)이제 중복된것을 .drop_duplicates()함수를 이용해 하나만 남겨서 변환하자. 또한 인덱스 순서가 엉망인것을 볼 수 있다. 인덱스 재배열을 하여 변환하자.<jupyter_code>df_transform = df_extract[['종목명','종목코드','시장구분']].drop_duplicates()
df_transform
df_transform = df_transform.reset_index(drop = True)
df_transform<jupyter_output><empty_output><jupyter_text>3. 적재(Load)이제 변환이 끝났으니 DB로 적재해보도록 하자.<jupyter_code>import sqlite3 
con = sqlite3.connect("ETL.db")
df_transform.to_sql("ETL_table",con, index=False, if_exists="replace")
cur = con.cursor()
cur.execute("SELECT * FROM ETL_table")
df_load = pd.read_sql("SELECT * FROM ETL_table", con)
df_load
con.commit()
con.close()<jupyter_output><empty_output><jupyter_text>4. 확인<jupyter_code>con = sqlite3.connect("ETL.db")
cur = con.cursor()
cur.execute("SELECT * FROM ETL_table")
df_col = pd.read_sql("SELECT * FROM ETL_table", con)
df_col
con.close()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13414634146341464, 'fraction_numerical': 0.007317073170731708, 'mean_word_length': 6.391891891891892, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '43833', 'license': 'MIT', 'n_tokens_mistral': 974, 'n_tokens_neox': 1226, 'n_words': 153, 'path': 'ETL_study.ipynb', 'repo_name': 'choiuikang/study', 'size': '1640'}