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