python统计文件某一列相同数据出现的个数并插入柱状图 |
您所在的位置:网站首页 › excel表格数据怎么生成柱状图 › python统计文件某一列相同数据出现的个数并插入柱状图 |
import xlsxwriter import csv import pandas as pd from collections import Counter import numpy import time # 新建一个表格,并添加表及柱状图 def generate_excel(dic): workbook = xlsxwriter.Workbook('Books score statistics.xlsx') worksheet = workbook.add_worksheet('statistics') # 设定格式,等号左边格式名称自定义,字典中格式为指定选项 # bold:加粗,num_format:数字格式 bold_format = workbook.add_format({'bold': True}) # 将二行二列设置宽度为15(从0开始) worksheet.set_column(1, 1, 15) # 用符号标记位置,例如:A列1行 worksheet.write('A1', '评分', bold_format) worksheet.write('B1', '个数', bold_format) row = 1 col = 0 for item in (dic): # 使用write_number方法,指定数据格式写入数据 worksheet.write_number(row, col, float(item['Book score'])) worksheet.write_number(row, col + 1, int(item['Quantity'])) row += 1 # --------生成图表并插入到excel--------------- # 创建一个柱状图(column chart) chart_col = workbook.add_chart({'type': 'column'}) # 配置系列数据 chart_col.add_series({ 'name': '=statistics!$B$1', 'categories': '=statistics!$A$2:$A$7', 'values': '=statistics!$B$2:$B$7', 'line': {'color': 'red'}, }) # 设置图表的title 和 x,y轴信息 chart_col.set_title({'name': 'Books score statistics'}) chart_col.set_x_axis({'name': 'Book score'}) chart_col.set_y_axis({'name': 'Quantity (piece)'}) # 设置图表的风格 chart_col.set_style(11) # 把图表插入到worksheet以及偏移 worksheet.insert_chart('A15', chart_col, {'x_offset': 25, 'y_offset': 10}) workbook.close() if __name__ == '__main__': # 访问文件 with open('f:/python_document/豆瓣读书TOP250.csv', 'r', encoding='utf-8') as csvfile: reader = csv.reader(csvfile) column1 = [row[3] for row in reader] #统计文件中的第三列数据 #print(column1) # 统计评分个数 result = {} for i in set(column1): result[i] = column1.count(i) del result['评分'] data = result #print(data) # 新建列表储存图书信息Book score和Quantity信息 bookdic = [] for key in data: bookdata = {"Book score": key, "Quantity": data[key]} bookdic.append(bookdata) print(bookdic) #调用函数 generate_excel(bookdic) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |