# 📌 Pandas read_csv() 풀옵션 예제 및 설명
import pandas as pd
# 1️⃣ 기본적으로 CSV 파일 불러오기
df = pd.read_csv("datasets/winequality-white.csv")
print(df.head())
# 2️⃣ 다양한 옵션 사용 예제
## ✅ 구분자 지정 (sep)
df = pd.read_csv("datasets/winequality-white.csv", sep=";") # 세미콜론(;)으로 구분된 데이터
df = pd.read_csv("datasets/winequality-white.csv", sep="\t") # 탭(\t)으로 구분된 데이터
## ✅ 인코딩 방식 지정 (encoding)
df = pd.read_csv("datasets/winequality-white.csv", encoding="utf-8") # UTF-8 인코딩
df = pd.read_csv("datasets/winequality-white.csv", encoding="cp949") # 한글 CSV 파일 읽기
## ✅ 컬럼 이름이 없는 경우 (header=None)
df = pd.read_csv("datasets/winequality-white.csv", header=None) # 첫 번째 줄을 컬럼 이름으로 사용하지 않음
df = pd.read_csv("datasets/winequality-white.csv", names=["col1", "col2", "col3"]) # 컬럼 이름 직접 지정
## ✅ 특정 행을 컬럼으로 설정 (index_col)
df = pd.read_csv("datasets/winequality-white.csv", index_col=0) # 첫 번째 열을 인덱스로 사용
## ✅ 필요한 컬럼만 불러오기 (usecols)
df = pd.read_csv("datasets/winequality-white.csv", usecols=["alcohol", "quality"]) # 특정 열만 불러오기
df = pd.read_csv("datasets/winequality-white.csv", usecols=[0, 2, 4]) # 특정 위치의 열만 불러오기
## ✅ 결측치 처리 방식 지정 (na_values)
df = pd.read_csv("datasets/winequality-white.csv", na_values=["?", "NA", "-", ""]) # 특정 값을 결측치로 처리
## ✅ 데이터 타입 지정 (dtype)
df = pd.read_csv("datasets/winequality-white.csv", dtype={"quality": "int32", "alcohol": "float64"}) # 특정 열 타입 지정
## ✅ 불필요한 공백 제거 (skipinitialspace)
df = pd.read_csv("datasets/winequality-white.csv", skipinitialspace=True) # 컬럼 값 앞뒤의 공백 제거
## ✅ 특정 행 스킵 (skiprows, skipfooter)
df = pd.read_csv("datasets/winequality-white.csv", skiprows=5) # 상위 5개 행 스킵
df = pd.read_csv("datasets/winequality-white.csv", skipfooter=10, engine="python") # 하위 10개 행 스킵
## ✅ 큰 데이터 읽기 (chunksize)
chunks = pd.read_csv("datasets/winequality-white.csv", chunksize=100) # 100개씩 데이터를 읽어옴
for chunk in chunks:
print(chunk.head())
## ✅ 열 데이터 강제 변환 (converters)
df = pd.read_csv("datasets/winequality-white.csv", converters={"alcohol": lambda x: float(x) * 1.2}) # alcohol 값을 1.2배로 변환
## ✅ 중복된 컬럼 처리 (mangle_dupe_cols)
df = pd.read_csv("datasets/winequality-white.csv", mangle_dupe_cols=True) # 중복된 컬럼 이름에 .1, .2 추가
## ✅ 압축된 파일 읽기 (zip, gzip 등)
df = pd.read_csv("datasets/winequality-white.csv.gz", compression="gzip") # gzip 압축 파일 읽기
df = pd.read_csv("datasets/winequality-white.zip", compression="zip") # zip 압축 파일 읽기
# 📌 Pandas read_csv() 옵션 조합 예제
import pandas as pd
# ✅ 다양한 옵션을 조합하여 CSV 파일 불러오기
# 1️⃣ 구분자 지정 + 인코딩 설정 + 특정 열 선택
df = pd.read_csv("datasets/winequality-white.csv", sep=";", encoding="utf-8", usecols=["alcohol", "quality"])
# 2️⃣ 특정 행을 인덱스로 설정 + 결측치 처리
df = pd.read_csv("datasets/winequality-white.csv", index_col="quality", na_values=["?", "NA", "-"])
# 3️⃣ 특정 열의 데이터 타입 변환 + 필요 없는 공백 제거
df = pd.read_csv("datasets/winequality-white.csv", dtype={"alcohol": "float64"}, skipinitialspace=True)
# 4️⃣ 상위 5개 행 스킵 + 하위 10개 행 스킵 + 특정 열만 불러오기
df = pd.read_csv("datasets/winequality-white.csv", skiprows=5, skipfooter=10, usecols=["pH", "density"], engine="python")
# 5️⃣ 결측치 처리 + 특정 값 변환 (converters)
df = pd.read_csv("datasets/winequality-white.csv", na_values=["?", "NA"], converters={"alcohol": lambda x: float(x) * 1.2})
# 6️⃣ 파일이 압축되어 있을 때 + 구분자 지정
df = pd.read_csv("datasets/winequality-white.csv.gz", compression="gzip", sep=";")
# 7️⃣ 데이터를 일정 크기로 나누어 읽기 (chunksize)
chunks = pd.read_csv("datasets/winequality-white.csv", chunksize=100)
for chunk in chunks:
print(chunk.head())
###########################
교재
##########################
import pandas as pd
# CSV 파일 불러오기
file_path = 'datasets/winequality-white.csv'
data = pd.read_csv(file_path)
# 데이터의 상위 5개 행 확인
data.head()
# 엑셀 파일 읽기
excel = "datasets/Online Retail.xlsx"
retail_data1 = pd.read_excel(excel, sheet_name='Online Retail')
print(retail_data1.head())
url_excel = "https://archive.ics.uci.edu/ml/machine-learning-databases/00352/Online%20Retail.xlsx"
retail_data2 = pd.read_excel(url_excel, sheet_name='Online Retail')
print(retail_data.head())
#Json 파일 불러오기
import requests
import pandas as pd
# JSON API 데이터 읽기
url_json = "https://jsonplaceholder.typicode.com/todos"
response = requests.get(url_json)
todos_data = response.json()
df_todos = pd.DataFrame(todos_data)
print(df_todos.head())
# SQLite 데이터베이스파일 불러오기
import sqlite3
# SQLite 데이터베이스 연결 및 데이터 읽기
url_sqlite = "https://github.com/lerocha/chinook-database/blob/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite"
local_file = "datasets/Chinook_Sqlite.sqlite" # 다운로드 후 사용
conn = sqlite3.connect(local_file)
query = "SELECT * from Customer"
df_customers = pd.read_sql_query(query, conn)
conn.close()
print(df_customers.head())
# HTML 테이블 데이터 읽기
url_html = "https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)"
tables = pd.read_html(url_html) # HTML 페이지의 모든 테이블 읽기
gdp_table = tables[2] # 특정 테이블 선택 (예: GDP 데이터)
print(gdp_table.head())
데이터저장
#data 데이터프레임은 csv파일 불러오기에서 와인데이터를 로드한 데이터임
data.to_csv('processed_wine_data.csv', index=False)
#data 데이터프레임은 csv파일 불러오기에서 와인데이터를 로드한 데이터임
data.to_excel('processed_wine_data.xlsx', index=False)
#data 데이터프레임은 csv파일 불러오기에서 와인데이터를 로드한 데이터임
data.to_json('processed_wine_data.json', orient='records')
import sqlite3
conn = sqlite3.connect('wine_data.db') # 데이터베이스 연결 생성
data.to_sql('wine_quality', conn, if_exists='replace', index=False) # 테이블 생성 및 데이터 저장
conn.close() # 연결 닫기