01-08월_메뉴별-매출_키오스크-POS.xlsx

import pandas as pd
import datetime

file_year = '2022-0'
file_name = '-메뉴별-매출_키오스크-POS_-220916'

# 1월부터 8일까지 데이터가 8개이므로 9개를 만들어서 index 지정을 편하게 해준다.
csvFile = [None] * 9
column_list = []

# 전체 메뉴를 가져오기 위한 반복문
for month_i in range(1, 9):
    
		# 파일 열기
    filename = file_year + str(month_i) + file_name
    csvFile[month_i] = pd.read_csv(filename + '.csv')
    
		# 카페 메뉴들 리스트에 저장
    for v in list(csvFile[month_i]):
        if v == '메뉴명/날짜':
            continue
        column_list.append(v)
    
# 중복된 메뉴들 제거
column_set = set(column_list)

dataSet = {
    'date' : [],
}
for i in column_set:
    dataSet[i] = []

# 월별로 데이터들 넣어주기
for month in range(1,9):
 
    for i in range(len(csvFile[month]['메뉴명/날짜'])):      

				# 날짜 형식 안맞는 경우가 있어서 조건문 생성
        if csvFile[month]['메뉴명/날짜'][i][0:4] == '2022': 
            dataSet['date'].append(csvFile[month]['메뉴명/날짜'][i])
        else:
            dataSet['date'].append(datetime.datetime.strptime(csvFile[month]['메뉴명/날짜'][i], "%m/%d/%Y").strftime('%Y-%m-%d'))
        
				# 메뉴에 맞게 값들 넣어주기
        for menu in column_set:
            if menu in csvFile[month]:
                dataSet[menu].append(csvFile[month][menu][i])
            else:
                dataSet[menu].append(0)  

# column list에 date colum도 넣어주기                
column_list = list(column_set)
column_list.insert(0, 'date')  
        
df = pd.DataFrame(dataSet, columns=column_list)
excel_writer = pd.ExcelWriter('01-08월_메뉴별-매출_키오스크-POS' + '.xlsx', engine='xlsxwriter')
df.to_excel(excel_writer, index=False, sheet_name='01-08월_메뉴별-매출_키오스크-POS')
excel_writer.save()

list to set - https://www.delftstack.com/ko/howto/python/python-list-to-set/

pandas 헤더 목록 가져오기 - http://daplus.net/python-pandas-dataframe-열-헤더에서-목록-가져-오기/

딕셔너리 키값 여부 확인하기 - https://optilog.tistory.com/25