ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pandas로 데이터 불러오기 및 저장하기
    pandas 2025. 1. 30. 22:25
    728x90

    1. 데이터 불러오기

    Pandas에서는 다양한 파일 형식의 데이터를 쉽게 불러올 수 있습니다. 대표적으로 CSV, Excel, JSON, SQL 데이터베이스 등이 있습니다.

    (1) CSV 파일 불러오기

    CSV(Comma-Separated Values) 파일은 가장 일반적인 데이터 파일 형식 중 하나입니다.

    import pandas as pd
    
    # CSV 파일 불러오기
    df = pd.read_csv("data.csv")
    
    # 데이터 출력
    print(df.head())  # 상위 5개 행 출력
    

    추가 옵션:

    • sep=";": 구분자가 ,가 아닌 ;일 경우 지정 가능
    • encoding="utf-8": 인코딩을 명시적으로 지정할 수 있음 (예: 한글 파일은 encoding="cp949")

    (2) Excel 파일 불러오기

    Pandas는 Excel 파일도 쉽게 읽을 수 있습니다.

    df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
    print(df.head())
    

    엑셀 파일을 읽으려면 openpyxl 패키지가 필요할 수 있습니다. 설치하려면 다음 명령어를 실행하세요.

    pip install openpyxl
    

    (3) JSON 파일 불러오기

    JSON 데이터도 Pandas에서 쉽게 다룰 수 있습니다.

    df = pd.read_json("data.json")
    print(df.head())
    

    (4) SQL 데이터베이스에서 불러오기

    SQL 데이터베이스의 데이터를 Pandas로 가져올 수도 있습니다.

    import sqlite3
    
    # 데이터베이스 연결
    conn = sqlite3.connect("database.db")
    
    # SQL 쿼리 실행 후 데이터 불러오기
    df = pd.read_sql("SELECT * FROM users", conn)
    print(df.head())
    
    # 연결 닫기
    conn.close()
    

    2. 데이터 저장하기

    Pandas에서 데이터프레임을 파일로 저장하는 방법도 매우 간단합니다.

    (1) CSV 파일로 저장

    df.to_csv("output.csv", index=False, encoding="utf-8")
    
    • index=False: 인덱스를 저장하지 않음
    • encoding="utf-8": 인코딩 설정 가능

    (2) Excel 파일로 저장

    df.to_excel("output.xlsx", index=False)
    
    • 엑셀 저장 시 openpyxl 패키지가 필요할 수 있음

    (3) JSON 파일로 저장

    df.to_json("output.json", orient="records", indent=4)
    
    • orient="records": 리스트 형태로 저장
    • indent=4: JSON 파일을 보기 좋게 저장

    (4) SQL 데이터베이스에 저장

    conn = sqlite3.connect("database.db")
    df.to_sql("users", conn, if_exists="replace", index=False)
    conn.close()
    
    • if_exists="replace": 기존 데이터를 덮어쓰기
    • if_exists="append": 기존 데이터에 추가

    3. 마무리

    이번 포스팅에서는 Pandas로 데이터를 불러오고 저장하는 방법을 다루었습니다. Pandas는 다양한 데이터 형식을 다룰 수 있어 매우 강력한 도구입니다.

    다음 글에서는 데이터 전처리 및 정리에 대해 다룰 예정이니 기대해 주세요! 😊

     

    728x90
Designed by Tistory.