Files
gui-gitea-operation/guide-readme/dataset.md

4.5 KiB

dat-* (데이터셋) Repository README 작성 가이드

dat-* 접두사를 사용하는 저장소는 특정 데이터셋 자체를 저장하거나, 데이터셋에 접근하고 이해하는 데 필요한 모든 정보를 관리합니다. README의 핵심 목표는 데이터의 출처, 구조, 내용을 명확히 설명하여 사용자가 데이터를 올바르게 해석하고 활용할 수 있도록 돕는 것입니다. Datasheet for Datasets의 개념을 차용하여 체계적으로 정보를 제공하는 것이 중요합니다.


1. 데이터셋 개요 (Dataset Overview)

  • 데이터셋 이름: "서울시 지하철 혼잡도 이력 데이터" 와 같이 데이터셋의 공식 명칭을 기재합니다.
  • 한 줄 요약: 이 데이터셋이 무엇에 대한 데이터인지 한 문장으로 설명합니다.
    • 예시: "2022년 한 해 동안 서울시 모든 지하철역의 시간대별 평균 혼잡도 정보를 담고 있는 시계열 데이터셋입니다."
  • 키워드: 시계열, 교통 데이터, 서울, 지하철 혼잡도 등 데이터셋을 설명하는 주요 키워드를 나열합니다.

2. 데이터 출처 및 수집 방법 (Source and Collection)

  • 데이터 원천 (Source): 데이터가 어디에서 비롯되었는지 원본 출처를 명확히 밝힙니다.
    • 예시: "서울 열린데이터 광장 (data.seoul.go.kr)"
    • 원본 데이터에 접근할 수 있는 URL을 반드시 포함해야 합니다.
  • 수집 방법 (Collection Process):
    • 데이터가 어떻게 수집되었는지 설명합니다. (예: "매일 자정, API를 통해 전날 데이터를 수집하여 CSV 파일로 저장하는 스크립트를 실행함.")
    • 데이터 수집 기간(예: 2022-01-01 ~ 2022-12-31), 수집 주기(예: 일별) 등 시간적 범위를 명시합니다.

3. 데이터 구조 및 스키마 (Data Structure and Schema)

  • 파일 목록 및 설명: 데이터셋을 구성하는 파일과 폴더 구조를 설명합니다.
    /
    ├── data/
    │   ├── subway_congestion_2022.csv  # 2022년 전체 데이터
    │   └── station_info.csv            # 지하철역 메타데이터
    ├── scripts/
    │   └── download_data.py            # 데이터 다운로드 스크립트
    └── README.md
    
  • 데이터 스키마 (칼럼 설명): 각 CSV 파일의 칼럼(열)이 무엇을 의미하는지 상세히 설명합니다. 표를 사용하는 것이 가장 효과적입니다.

subway_congestion_2022.csv

칼럼명 (Column) 데이터 타입 (Type) 설명 (Description) 예시 (Example)
date YYYY-MM-DD 데이터 수집 날짜 2022-05-15
station_code String 지하철역 고유 코드 (station_info.csv 참조) S1001
hour Integer 시간 (0-23) 18 (오후 6시)
congestion Float 해당 시간의 평균 혼잡도 (0.0 ~ 1.0) 0.85

4. 데이터 사용 예시 (Usage Example)

  • 목적: 사용자가 데이터를 로드하여 기본적인 분석을 수행하는 간단한 코드 스니펫을 제공합니다.
  • Python (Pandas) 예시:
    import pandas as pd
    
    # 데이터 불러오기
    congestion_df = pd.read_csv('data/subway_congestion_2022.csv')
    station_df = pd.read_csv('data/station_info.csv')
    
    # 데이터 병합
    df = pd.merge(congestion_df, station_df, on='station_code')
    
    # 강남역의 월별 평균 혼잡도 계산
    gangnam_congestion = df[df['station_name'] == '강남']
    monthly_avg = gangnam_congestion.groupby(pd.to_datetime(df['date']).dt.month)['congestion'].mean()
    
    print(monthly_avg)
    

5. 라이선스 및 사용 제약 (License and Constraints)

  • 라이선스: 데이터셋에 적용되는 라이선스를 명시합니다. (예: CC-BY 4.0)
  • 사용 제약:
    • 데이터 사용 시 출처를 반드시 표기해야 하는지 등 사용 조건을 안내합니다.
    • 개인정보 포함 여부, 상업적 이용 가능 여부 등 민감한 사항을 명확히 고지합니다.
  • 면책 조항 (Disclaimer): 데이터의 정확성이나 완전성을 보증하지 않으며, 데이터 사용으로 발생하는 문제에 대해 책임지지 않는다는 점을 명시할 수 있습니다.