""" 신문과방송 독자 데이터 구조 분석 스크립트 """ import pandas as pd import os # 데이터 폴더 경로 data_dir = r'c:\Users\korea\Desktop\dacon_broadcast_paper\data' # 각 파일 분석 files = [ 'article_metrics_monthly.xlsx', 'contents.xlsx', 'demographics_part001.xlsx', 'demographics_part002.xlsx', 'referrer.xlsx' ] print("=" * 80) print("신문과방송 독자 데이터 구조 분석") print("=" * 80) for file in files: file_path = os.path.join(data_dir, file) print(f"\n{'='*80}") print(f"파일명: {file}") print(f"{'='*80}") try: # Excel 파일 읽기 df = pd.read_excel(file_path) # 기본 정보 print(f"\n[기본 정보]") print(f"행 개수: {len(df):,}") print(f"열 개수: {len(df.columns)}") print(f"전체 크기: {df.shape}") # 컬럼 정보 print(f"\n[컬럼 목록 및 데이터 타입]") for idx, (col, dtype) in enumerate(zip(df.columns, df.dtypes), 1): non_null = df[col].notna().sum() null_count = df[col].isna().sum() null_pct = (null_count / len(df)) * 100 print(f"{idx:2d}. {col:40s} | Type: {str(dtype):15s} | Non-Null: {non_null:,} | Null: {null_count:,} ({null_pct:.1f}%)") # 샘플 데이터 (처음 3행) print(f"\n[샘플 데이터 (처음 3행)]") print(df.head(3).to_string()) # 메모리 사용량 memory_mb = df.memory_usage(deep=True).sum() / 1024 / 1024 print(f"\n[메모리 사용량]: {memory_mb:.2f} MB") except Exception as e: print(f"오류 발생: {str(e)}") print("\n" + "=" * 80) print("분석 완료!") print("=" * 80)