Broadcast_paper / convert_to_csv.py
Choi jun hyeok
Deploy Flask app to HF Space
d4a3b8b
"""
Excel νŒŒμΌμ„ CSV ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 슀크립트
"""
import pandas as pd
import os
from datetime import datetime
# 디렉토리 μ„€μ •
data_dir = r'c:\Users\korea\Desktop\dacon_broadcast_paper\data'
output_dir = r'c:\Users\korea\Desktop\dacon_broadcast_paper\data_csv'
# 좜λ ₯ 디렉토리 생성
if not os.path.exists(output_dir):
os.makedirs(output_dir)
print(f"CSV 좜λ ₯ 디렉토리 생성: {output_dir}")
# λ³€ν™˜ν•  파일 λͺ©λ‘
files = [
'article_metrics_monthly.xlsx',
'contents.xlsx',
'demographics_part001.xlsx',
'demographics_part002.xlsx',
'referrer.xlsx'
]
print("=" * 80)
print("Excel β†’ CSV λ³€ν™˜ μ‹œμž‘")
print("=" * 80)
for file in files:
start_time = datetime.now()
file_path = os.path.join(data_dir, file)
csv_filename = file.replace('.xlsx', '.csv')
csv_path = os.path.join(output_dir, csv_filename)
print(f"\n[처리 쀑] {file}")
try:
# Excel 파일 읽기
df = pd.read_excel(file_path)
# CSV둜 μ €μž₯ (UTF-8 with BOM for Excel compatibility)
df.to_csv(csv_path, index=False, encoding='utf-8-sig')
# 처리 μ‹œκ°„ 계산
elapsed = (datetime.now() - start_time).total_seconds()
# κ²°κ³Ό 좜λ ₯
print(f" βœ“ μ™„λ£Œ: {csv_filename}")
print(f" - ν–‰ 개수: {len(df):,}")
print(f" - μ—΄ 개수: {len(df.columns)}")
print(f" - 처리 μ‹œκ°„: {elapsed:.2f}초")
print(f" - μ €μž₯ 경둜: {csv_path}")
except Exception as e:
print(f" βœ— 였λ₯˜ λ°œμƒ: {str(e)}")
# demographics 파일 병합 (선택사항)
print("\n" + "=" * 80)
print("[μΆ”κ°€ μž‘μ—…] demographics 파일 병합")
print("=" * 80)
try:
demo_part1 = pd.read_csv(os.path.join(output_dir, 'demographics_part001.csv'))
demo_part2 = pd.read_csv(os.path.join(output_dir, 'demographics_part002.csv'))
# 두 파일 병합
demographics_merged = pd.concat([demo_part1, demo_part2], ignore_index=True)
# λ³‘ν•©λœ 파일 μ €μž₯
merged_path = os.path.join(output_dir, 'demographics_merged.csv')
demographics_merged.to_csv(merged_path, index=False, encoding='utf-8-sig')
print(f"βœ“ demographics 병합 μ™„λ£Œ")
print(f" - 총 ν–‰ 개수: {len(demographics_merged):,}")
print(f" - μ €μž₯ 경둜: {merged_path}")
except Exception as e:
print(f"βœ— 병합 쀑 였λ₯˜ λ°œμƒ: {str(e)}")
print("\n" + "=" * 80)
print("λͺ¨λ“  λ³€ν™˜ μž‘μ—… μ™„λ£Œ!")
print("=" * 80)