본문 바로가기

파이썬

4. 데이터불러오기 및 저장하기

# 📌 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()  # 연결 닫기

'파이썬' 카테고리의 다른 글

6. 데이터 전처리 (결측치와 이상치)  (0) 2025.03.17
5. 데이터선택하기  (0) 2025.03.17
3. 파이썬 자료형 튜토리얼  (0) 2025.03.17
2. Pandas 기본 문법 튜토리얼  (0) 2025.03.17
1. NumPy 기본 튜토리얼  (0) 2025.03.17