电商 商品数据分析 市场洞察 导出数据后 横线对比 python实现2

#-*- encoding:utf-8 -*-
import  pandas  as pd
from pandas import DataFrame
import csv
import os
from openpyxl.utils import get_column_letter, column_index_from_string



#原文:
#https://www.cnblogs.com/SH170706/p/10450239.html
#https://blog.csdn.net/wangxingfan316/article/details/79628463
#https://blog.csdn.net/brucewong0516/article/details/79097909
#https://blog.csdn.net/qq_38115310/article/details/98031934
#https://blog.csdn.net/AuserBB/article/details/79269562
#https://www.cnblogs.com/programmer-tlh/p/10461353.html
#https://blog.csdn.net/xufankang/article/details/83688379




g_list_compare_column_name = ['交易金额', '访客人数', '支付人数', '支付转化率', '客单价', 'uv价值']
# g_list_compare_column_name = ['无线端访客数', '无线端支付金额', '无线端支付买家数', '无线端加购件数', '无线端支付件数', '无线端支付转化率', '下单买家数', '下单件数', '下单金额', '成功退款退货金额', '无线端平均停留时长', '无线端商品收藏买家数', '无线端客单价']


g_dic_excel = {}
g_list_excel_name = []
g_list_column_name = []
g_str_column_name_date = '日期'
# g_str_column_name_date = '统计日期'


# 初始化01-创建excel,excel_name缓存
def create_cache_excel():
    path = "./files/"
    files = os.listdir(path)
    for filename in files:
        fullname = path + filename# 文件的相对路径
        df = pd.read_csv(fullname)     
        dic_key = filename.replace('-综合数据.csv', '').replace('.csv', '')# 得到店铺名
        g_dic_excel[dic_key] = df
        g_list_excel_name.append(dic_key)


# 初始化02-创建列名缓存
def create_cache_column_name():
    key = list(g_dic_excel.keys())[0]# 取第一个key
    df = g_dic_excel[key]
    g_list_column_name = list(df.columns.values)



# 获取一列值
def get_list_column_value(excel_name, column_name):
    arr = []
    df = g_dic_excel[excel_name]
    for index, row in df.iterrows():# 遍历行        
        arr.append(row[column_name])
    return arr





# 创建sheet
def create_sheet(column_name):
    dic1 = {}    
    dic1[g_str_column_name_date] = get_list_column_value(g_list_excel_name[0], g_str_column_name_date)# 生成首列
    for excel_name in g_list_excel_name:# 生成其余列
        arr_value = get_list_column_value(excel_name, column_name)
        dic1[excel_name] = arr_value
    return dic1    
    



# 初始化
create_cache_excel()
create_cache_column_name()



# 生成excel
writer = pd.ExcelWriter('1.xlsx')
for column_name in g_list_compare_column_name:
    pd.DataFrame(create_sheet(column_name)).to_excel(writer, sheet_name=column_name, index=False)


# 列固定宽度
for index, item in enumerate(writer.sheets):
    max_column = writer.sheets[item].max_column
    for i in range(max_column):
        letter = get_column_letter(i+1)
        writer.sheets[item].column_dimensions[letter].width = 20


writer.save()


原文地址:https://www.cnblogs.com/guxingy/p/13863720.html