mutoy/Broadcast_paper
0
1"""2신문과방송 독자 데이터 구조 분석 스크립트3"""4import pandas as pd5import os6 7# 데이터 폴더 경로8data_dir = r'c:\Users\korea\Desktop\dacon_broadcast_paper\data'9 10# 각 파일 분석11files = [12 'article_metrics_monthly.xlsx',13 'contents.xlsx',14 'demographics_part001.xlsx',15 'demographics_part002.xlsx',16 'referrer.xlsx'17]18 19print("=" * 80)20print("신문과방송 독자 데이터 구조 분석")21print("=" * 80)22 23for file in files:24 file_path = os.path.join(data_dir, file)25 print(f"\n{'='*80}")26 print(f"파일명: {file}")27 print(f"{'='*80}")28 29 try:30 # Excel 파일 읽기31 df = pd.read_excel(file_path)32 33 # 기본 정보34 print(f"\n[기본 정보]")35 print(f"행 개수: {len(df):,}")36 print(f"열 개수: {len(df.columns)}")37 print(f"전체 크기: {df.shape}")38 39 # 컬럼 정보40 print(f"\n[컬럼 목록 및 데이터 타입]")41 for idx, (col, dtype) in enumerate(zip(df.columns, df.dtypes), 1):42 non_null = df[col].notna().sum()43 null_count = df[col].isna().sum()44 null_pct = (null_count / len(df)) * 10045 print(f"{idx:2d}. {col:40s} | Type: {str(dtype):15s} | Non-Null: {non_null:,} | Null: {null_count:,} ({null_pct:.1f}%)")46 47 # 샘플 데이터 (처음 3행)48 print(f"\n[샘플 데이터 (처음 3행)]")49 print(df.head(3).to_string())50 51 # 메모리 사용량52 memory_mb = df.memory_usage(deep=True).sum() / 1024 / 102453 print(f"\n[메모리 사용량]: {memory_mb:.2f} MB")54 55 except Exception as e:56 print(f"오류 발생: {str(e)}")57 58print("\n" + "=" * 80)59print("분석 완료!")60print("=" * 80)61 