zoukankan      html  css  js  c++  java
  • 电商 商品数据分析 市场洞察 导出数据后 横线对比 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()
    
    
    
  • 相关阅读:
    (Go)03.go类型
    (Go)02.go 安装delve调试工具测试
    (Go)01.Windows 安装 Go语言开发环境以及使用
    etcd创建集群并增加节点
    libhiredis.so.0.13 => not found 缺少
    Linux查找并杀死僵尸进程
    k8s istio 配置请求的路由规则
    k8s 安装并试用Istio service mesh
    k8s Job、Cronjob 的使用
    k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry
  • 原文地址:https://www.cnblogs.com/guxingy/p/13863720.html
Copyright © 2011-2022 走看看