Python读取xlsx数据生成图标代码实例

  • 时间:
  • 7458人关注

这篇文章主要介绍了Python读取xlsx数据生成图标代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下,另外这篇文章主要知识点是关于Python、读取xlsx数据、生成图标、Python的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:Python
  • 编辑整理:农元基
  • 教程字数:1556字节
  • 阅读时间:大概15分钟
  • 下载本教程(DOC版)
  • Python Cookbook
  • Python和HDF5大数据应用
  • 流畅的Python
  • 自学python教程视频
  • Python与数据挖掘
  • 运行结果:

    程序代码如下:

    #将excel中的数据进行读取分析
    import openpyxl
    import numpy as np
    import math
    import matplotlib.pyplot as pit
    wk=openpyxl.load_workbook('信息11.xlsx')
    sheet=wk.active
    rows=sheet.max_row
    cols=sheet.max_column
    lst1=[]
    lst2=[]
    for i in range (1,rows+1):
      size1=sheet.cell(i,1).value
      lst1.append(size1)
      size2 = sheet.cell(i, 2).value
      lst2.append(size2)
    num=0
    dic_size={}
    for item in lst1:
      dic_size[lst1[num]]=lst2[num]
      num+=1
    #弄成百分比的形式
    lst_total=[]
    for item in dic_size:
      lst_total.append([item,dic_size[item]])
    labels=[item[0] for item in lst_total] #使用列表生成式,得到饼图的标签
    fraces=[item[1] for item in lst_total] #饼图中的数据源
    pit.rcParams['font.family']=['SimHei'] #单独的表格乱码的处理方式
    pit.scatter(labels,fraces)
    pit.plot(labels,fraces,color='green')
    pit.bar(labels,fraces,width=5,color='red')
    z1=np.polyfit(labels,fraces,2)
    p1=np.poly1d(z1)
    x = np.linspace(0, 500, 50)
    y=-0.00024*(x**2)+0.1013*(x)+10.23
    pit.plot(x,y,color='purple')
    #pit.savefig('图.jpg')
    yre=[]
    for item in labels:
      y=-0.00024*(item**2)+0.1013*(item)+10.23
      yre.append(round(y,6))
    print(fraces)
    print(yre)
    result=[]
    a=0
    mse=0
    mae=0
    for i in range(0,10):
      a+=round(fraces[i]-yre[i],6)
      mae+=round(math.fabs(fraces[i]-yre[i]),6)
    for i in range(0,10):
      result.append(round(fraces[i] - yre[i]-round(a/10,6), 6))
      mse += round((fraces[i] - yre[i]-round(a/10,6)) * (fraces[i] - yre[i]-round(a/10,6)), 6)
    print(result)
    print('均值',round(a/10,6))
    print('均方误差',round(mse/10,6))
    rmse=math.sqrt(round(mse/10,6))
    print('均方根误差',round(rmse,6))
    print('平均绝对误差',round(mae/10,6))
    print('R平方的数值',1-((round(a/10,6))*round(a/10,6))/round(mse/10,6))
    print(p1)
    #pit.show()

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    码农之家
    python使用xlsxwriter实现有向无环图到Excel的转换

    5小时53分钟前回答

    python使用xlsxwriter实现有向无环图到Excel的转换

    本程序将使用字典来构建有向无环图,然后遍历图将其转换为对应的Excel文件

    最终结果如下:

    python使用xlsxwriter实现有向无环图到Excel的转换

    代码:

    (py3) [root@7-o-1 py-dag]# cat test.py 
    from dag import DAG
    dag = DAG()
    dag.from_dict({'a': ['b', 'c','e'],
         'b': ['d','g'],
         'c': ['d'],
         'g':['i'],
         'i':[],
         'e':['gh','ox','wer'],
         'gh':[],
         'ox':[],
         'wer':[],
         'd': []})
    
    def generate_excel(dag, row_start,col,excel_file):#参数分别为有向无环图图、开始写入的行,开始写入列,以及文件名
     import xlsxwriter#导入Excel操作模块
     workbook = xlsxwriter.Workbook(excel_file)#创建Excel文件
     worksheet = workbook.add_worksheet('testsheet')#创建工作簿
     #以下为部分格式的预定义(包含合并行格式,数字日期格式等)
     merge_format = workbook.add_format({
     'bold': 1,
     'border': 1,
     'align': 'left',
     'valign': 'vcenter'})
    
     cell_format = workbook.add_format({
     'bold': 1,
     'border': 1,
     'align': 'top',
     'valign': 'left'})
    
     date_format = workbook.add_format({
     'bold': 1,
     'border': 1,
     'align': 'top',
     'valign': 'left',
     'num_format': 'd mmmm yyyy'})
    
     num_format = workbook.add_format({
     'bold': 1,
     'border': 1,
     'align': 'top',
     'valign': 'left',
     'num_format': '0.0000%'})
    
     def get_node_leaves(node,ret = []):#用来返回一个节点的所有最终叶子结点
       downs = dag.downstream(node)#先获取当前节点的下一级节点
       if len(downs) < 1:#如果无下一级节点将直接将此节点添加到列表
        ret.append(node)
       else:#负责循环递归,将所有叶子结点添加到列表
        for inner_node in downs:
         get_node_leaves(inner_node,ret)
       return ret#返回节点列表
    
     def dag_visit(dag, node, r_idx,col):
      if node not in all_leaves:
       downstreams = dag.downstream(node)
       node_leaves = len(get_node_leaves(node,[]))#获取所有叶子的个数,用来判断是否进行合并行操作
       r_idx_end = r_idx+node_leaves-1
       if len(downstreams) == 1:#对于只有一个子节点的node应用write
        worksheet.write(col+str(r_idx), node,cell_format)
       else:#对于多余一个子节点的node应用merge_range
        worksheet.merge_range(col+str(r_idx)+':'+col+str(r_idx_end), node,merge_format)
       col = chr(ord(col)+1)#列+1,开始进入子节点遍历
       downstreams_len = len(downstreams)
       if len(downstreams) >0:
        row_next = r_idx
        for downstream in downstreams:
         subnode_leaves = len(get_node_leaves(downstream,[]))#获取当前节点的所有叶子用来为下一个节点的填充确定位移
         if downstream in all_leaves:
          subnode_leaves = 1
          if col == merge_to:#对于子节点为叶子并且跨度为1应用write
           worksheet.write(col+str(row_next), downstream,cell_format)
          else:#对于子节点为叶子结点但是跨度大于1应用merge_range
           merge_rg = col+str(row_next) +':'+merge_to+str(row_next)
           worksheet.merge_range(merge_rg, downstream,merge_format)
         else:#子节点非叶子结点进行递归遍历
          dag_visit(dag, downstream, row_next,col)
         #每访问一个子结点需要将row值增加方便下一个node正确填充,row的值是前一个结点的子节点个数
         row_next += subnode_leaves
    
      else:
       print(node)
    
     head_node = dag.ind_nodes()[0]
     all_leaves = dag.all_leaves()
     dag_depth = dag.dag_depth(head_node,0)
     merge_to= chr(ord(col)+dag_depth)#对于合并列的终结列index
     dag_visit(dag, head_node, row_start,col)#传递根节点进行遍历
     workbook.close()
    generate_excel(dag,1,'A','test.xlsx')

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    展开阅读

    上一篇:Python列表推导式实现代码详解

    下一篇:python解包裹传递是什么

    相关内容

    学习笔记

    18小时9分钟前回答

    python3读取csv和xlsx文件的实例

    基于win10系统,python3.6 读取csv 使用csv函数包,安装 pip install csv 使用方法: import csvdef fileload(filename = '待读取.csv'): csvfile = open(filename, encoding = 'utf-8') data = csv.reader(csvfile) dataset = [] for line in data: dataset.append(line) csvfile.close() return dataset 读取xlsx 使用xlrd函数包,安装: pip install xlrd 使用方法: import xlrddef fileload(filename = '待读取.xlsx'): dataset = [] workbook = xlrd.open_workbook(filename) table = workbook.sheets()[0] for row in range(table.nrows): dataset.append(table.row_values(row)) return dataset 这两个较为常用,需要知道如何使用。 以上这篇python3读取csv和xlsx文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多……

    35小时19分钟前回答

    Python读取xlsx文件的实现方法

    脚本如下: from openpyxl import load_workbookworkbook = load_workbook(u'/tmp/test.xlsx') #找到需要xlsx文件的位置booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet#如果想获取别的sheet页采取下面这种方式,先获取所有sheet页名,在通过指定那一页。# sheets = workbook.get_sheet_names() # 从名称获取sheet# booksheet = workbook.get_sheet_by_name(sheets[0])#获取sheet页的行数据rows = booksheet.rows#获取sheet页的列数据columns = booksheet.columnsi = 0# 迭代所有的行for row in rows: i = i + 1 line = [col.value for col in row] cell_data_1 = booksheet.cell(row=i, column=3).value #获取第i行1 列的数据 cell_data_2 = booksheet.cell(row=i, column=4).value #获取第i行 2 列的数据 cell_data_3 = booksh……

    1小时46分钟前回答

    python XlsxWriter模块创建aexcel表格的代码讲解

    这篇文章主要介绍了关于python XlsxWriter模块创建aexcel表格,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 安装使用pip install XlsxWriter来安装,Xlsxwriter用来创建excel表格,功能很强大,下面具体介绍: 1.简单使用excel的实例: #coding:utf-8import xlsxwriterworkbook = xlsxwriter.Workbook(d:\\suq\\test\\demo1.xlsx) #创建一个excel文件worksheet = workbook.add_worksheet(TEST) #在文件中创建一个名为TEST的sheet,不加名字默认为sheet1 worksheet.set_column(A:A,20) #设置第一列宽度为20像素bold = workbook.add_format({bold:True}) #设置一个加粗的格式对象 worksheet.write(A1,HELLO) #在A1单元格写上HELLOworksheet.write(A2,WORLD,bold) #在A2上写上WORLD,并且设置为加粗wo……