Pandas에서 데이터를 저장하는 방법은 다양합니다. CSV, Excel, SQL 등 여러 형식으로 데이터를 저장할 수 있는데, 이를 각각 예제로 설명하겠습니다.
DataFrame을 CSV 파일로 저장할 때 to_csv() 메서드를 사용합니다.
import pandas as pd
# 예제 데이터프레임 생성
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
# CSV 파일로 저장
df.to_csv('data.csv', index=False)
index=False는 인덱스 열을 CSV에 저장하지 않도록 합니다.특정 인코딩으로 저장하고 싶을 때는 encoding 파라미터를 사용할 수 있습니다.
# UTF-8 인코딩으로 저장
df.to_csv('data_utf8.csv', index=False, encoding='utf-8')
DataFrame을 Excel 파일로 저장할 때는 to_excel() 메서드를 사용합니다.
# Excel 파일로 저장
df.to_excel('data.xlsx', index=False)
여러 DataFrame을 하나의 Excel 파일의 다른 시트에 저장하려면 ExcelWriter를 사용합니다.
# 여러 시트에 저장
with pd.ExcelWriter('multi_sheet_data.xlsx') as writer:
df.to_excel(writer, sheet_name='Sheet1')
df.to_excel(writer, sheet_name='Sheet2')
SQLite 데이터베이스에 저장할 때는 to_sql() 메서드를 사용합니다. 이때 sqlalchemy 또는 sqlite3 라이브러리가 필요합니다.
from sqlalchemy import create_engine
# SQLite 엔진 생성
engine = create_engine('sqlite:///data.db')
# 데이터베이스에 저장 (테이블 이름: people)
df.to_sql('people', engine, index=False, if_exists='replace')
if_exists='replace'는 테이블이 이미 존재하면 덮어쓰기를 수행합니다. 데이터베이스 테이블을 업데이트하려면 append로 설정할 수 있습니다.DataFrame을 JSON 형식으로 저장할 때는 to_json() 메서드를 사용합니다.
# JSON 파일로 저장
df.to_json('data.json')
orient 옵션을 사용하여 JSON 형식의 구조를 지정할 수 있습니다. 예를 들어, records로 설정하면 각 행이 JSON 객체로 저장됩니다.
# JSON 포맷을 'records'로 저장
df.to_json('data_records.json', orient='records')
DataFrame을 HTML 파일로 저장할 때는 to_html() 메서드를 사용합니다.
# HTML 파일로 저장
df.to_html('data.html')
CSV나 Excel 파일을 압축하여 저장할 수 있습니다. compression 파라미터를 이용하여 여러 압축 방식을 설정할 수 있습니다.
# Gzip 압축을 사용하여 CSV 저장
df.to_csv('data.csv.gz', index=False, compression='gzip')
# ZIP 압축을 사용하여 Excel 저장
df.to_excel('data.zip', index=False, engine='xlsxwriter', compression={'method': 'zip', 'archive_name': 'data.xlsx'})
데이터를 클립보드에 복사하여 쉽게 붙여넣을 수 있습니다. 예를 들어, 엑셀이나 구글 스프레드시트에 데이터를 빠르게 붙여넣을 때 유용합니다.
# 클립보드에 저장
df.to_clipboard(index=False)