import pandas as pd
from google.colab import files
import io
# 1. 사용자에게 파일 업로드 요청
print("📂 엑셀 파일을 업로드하세요.")
uploaded = files.upload() # 파일 업로드 창이 나타남
# 2. 업로드된 파일 읽기
file_name = list(uploaded.keys())[0] # 업로드된 파일 이름 가져오기
df = pd.read_excel(io.BytesIO(uploaded[file_name])) # 엑셀 데이터 읽기
# 3. 빈 F열이 존재하는지 확인 (빈 열이라면 기본적으로 NaN으로 채워짐)
if "F" in df.columns:
print("✅ F열을 찾았습니다. 날짜를 입력합니다.")
# 4. 날짜 채우기: 2025년 3월 9일부터 시작하여 2행부터 하루씩 증가
start_date = pd.to_datetime("2025-03-09")
df.loc[1:, "F"] = [start_date + pd.Timedelta(days=i) for i in range(len(df) - 1)]
else:
print("⚠️ 'F' 열을 찾을 수 없습니다. 엑셀 파일을 확인하세요.")
raise ValueError("필수 열이 누락됨")
# 5. 수정된 데이터를 새로운 엑셀 파일로 저장
output_file = "sales_data_Date.xlsx"
df.to_excel(output_file, index=False)
# 6. 사용자에게 파일 다운로드 제공
print(f"✅ 날짜가 추가된 데이터가 {output_file} 파일로 저장되었습니다! 다운로드하세요.")
files.download(output_file)
그대로 코드 복사해서 넣어보았더니..
또 파일 선택하라 한 뒤,
에러 뜸
왜 에러 났는지 보니까, 이전에 "가격(Price)"라고 한 것과 달리, 내가 직접 "F"라고 이름 지어둔 열이 없었던 것.
열 이름 대신 인덱스(번호)로 접근
계속 에러 나서 결국, 엑셀 파일에 '날짜(Date)' 추가
결국 기존열을 새로운 데이터로 수정
Colab에서 엑셀 자동화 할거야. "## 제공된 sales_data.xlsx 파일에는 여러 개의 열(Column)이 있어. '카테고리(Category)' 열을 '날짜(Date)'열으로 이름을 바꾸고, 2행부터 순서대로 2025년 3월 9일부터 날짜가 하루씩 증가하게 변경한 후, 수정된 데이터를 새로운 엑셀 파일 (sales_data_Date.xlsx)로 저장하는 자동화 프로그램을 작성하세요." 이를 실행하기 위한 Colab 코드 작성해줘
import pandas as pd
from google.colab import files
import io
# 1. 사용자에게 파일 업로드 요청
print("📂 엑셀 파일을 업로드하세요.")
uploaded = files.upload() # 파일 업로드 창이 나타남
# 2. 업로드된 파일 읽기
file_name = list(uploaded.keys())[0] # 업로드된 파일 이름 가져오기
df = pd.read_excel(io.BytesIO(uploaded[file_name])) # 엑셀 데이터 읽기
# 3. '카테고리(Category)' 열을 '날짜(Date)'로 이름 변경
if "카테고리(Category)" in df.columns:
df.rename(columns={"카테고리(Category)": "날짜(Date)"}, inplace=True)
print("✅ '카테고리(Category)' 열이 '날짜(Date)'로 이름이 변경되었습니다.")
else:
print("⚠️ '카테고리(Category)' 열을 찾을 수 없습니다. 엑셀 파일을 확인하세요.")
raise ValueError("필수 열이 누락됨")
# 4. 날짜(Date) 열의 2행부터 날짜 변경 (2025년 3월 9일부터 시작)
start_date = pd.to_datetime("2025-03-09") # 시작 날짜
df["날짜(Date)"] = [start_date + pd.Timedelta(days=i) for i in range(len(df))]
# 5. 수정된 데이터를 새로운 엑셀 파일로 저장
output_file = "sales_data_Date.xlsx"
df.to_excel(output_file, index=False)
# 6. 사용자에게 파일 다운로드 제공
print(f"✅ 수정된 데이터가 {output_file} 파일로 저장되었습니다! 다운로드하세요.")
files.download(output_file)
엥 #### 나와서 당황했는데, 행 늘리니 되네
몇번이나, 행 너비 넓혀달라고 했는데 안 먹혔고, 시간 없이 날짜만 나오게는 성공했다
import pandas as pd
from google.colab import files
import io
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import Alignment
from datetime import datetime, timedelta
# 1. 사용자에게 파일 업로드 요청
print("📂 엑셀 파일을 업로드하세요.")
uploaded = files.upload() # 파일 업로드 창이 나타남
# 2. 업로드된 파일 읽기
file_name = list(uploaded.keys())[0] # 업로드된 파일 이름 가져오기
df = pd.read_excel(io.BytesIO(uploaded[file_name])) # 엑셀 데이터 읽기
# 3. '카테고리(Category)' 열을 '날짜(Date)' 열로 이름 변경
if "카테고리(Category)" in df.columns:
df.rename(columns={"카테고리(Category)": "날짜(Date)"}, inplace=True)
print("✅ '카테고리(Category)' 열을 '날짜(Date)' 열로 이름을 변경했습니다.")
else:
print("⚠️ '카테고리(Category)' 열을 찾을 수 없습니다. 엑셀 파일을 확인하세요.")
raise ValueError("'카테고리(Category)' 열이 누락됨")
# 4. 날짜(Date) 열에 2025년 3월 9일부터 순차적으로 날짜 입력
start_date = datetime(2025, 3, 9)
df["날짜(Date)"] = [start_date + timedelta(days=i) for i in range(len(df))]
# 5. 날짜 형식만 남기고 시간 제거 (시:분:초 제외)
df["날짜(Date)"] = df["날짜(Date)"].dt.date
# 6. 새로운 엑셀 파일로 저장
output_file = "sales_data_Date.xlsx"
df.to_excel(output_file, index=False)
# 7. 열 너비 조정 (날짜 열 너비 넓게 설정)
wb = load_workbook(output_file)
ws = wb.active
# 열 너비 조정
ws.column_dimensions['B'].width = 15 # '날짜(Date)' 열 너비 넓게 설정
# 8. 날짜 열의 모든 셀을 중앙 정렬로 설정
for row in ws.iter_rows(min_row=2, min_col=2, max_col=2, max_row=len(df) + 1):
for cell in row:
cell.alignment = Alignment(horizontal='center', vertical='center')
# 9. 수정된 파일 저장
wb.save(output_file)
# 10. 사용자에게 파일 다운로드 제공
print(f"✅ 수정된 데이터가 {output_file} 파일로 저장되었습니다! 다운로드하세요.")
files.download(output_file)
이번에도 다시 내가 행 너비를 늘렸다.. ㅎㅎ 그래 인간으 ㅣ손이 좀 필요한 걸로 ㅎㅎ