python操作Excel、读取CVS与数据可视化

python操作Excel、读取CVS与数据可视化

目录

1. python操作Excel

python操作Excel有多种module可以实现(xlrd、xlwt、xlutils、openpyxl、xlsxwriter),本文使用xlsxwriter这个module,官方链接地址。xlsxwriter支持在Excel 2007之后版本的xlsx文件中编写多个工作表的文本、数字、公式和超链接。本文中用到的类主要有WorkbookWorksheetChart,对Excel进行数据写入和生成折线图、柱状图、饼图。

1.1 xlsxwriter模块介绍

1.1.1 Workbook类

Workbook是xlsxwriter模块的主类,对excel文件的操作都需要通过这个类,表示在excel中看到的整个电子表格。

函数名功能返回值备注
Workbook(filename[, options])构造函数--根据传入的文件名创建Workbook对象Workbook对象
add_worksheet([name])为excel文件添加一个worksheetworksheet对象不指定名字默认为sheet1、sheet2...
add_format([properties])创建一个format对象格式化对象 
add_chart(options)创建一个Chart对象Chart对象 
close()关闭打开的xlsx文件并进行写入 

1.1.2 Worksheet类

Worksheet类表示一个Excel工作表,处理向单元格写入数据或格式化工作布局等操作。

函数名功能返回值备注
write_row(row, col, data[, cell_format])以某个单元格作为起始写入行数据0--成功 其他--失败可以通过(row,col)来索引单元格,也可以通过'A1'、'A2'的形式
write_column(row, col, data[, cell_format])以某个单元格作为起始写入列数据0--成功 其他--失败同上
insert_chart(row, col, chart[, options])在worksheet中插入一个chart0--成功 -1--索引越界(row, col)用于指定chart的显示位置

1.1.3 Chart类

Chart类是xlsxwriter中用来操作图表的类,通过workbook.add_chart函数创建Chart对象。

函数名功能返回值备注
add_series(options)向图表中添加数据序列 
set_title(options)设置图表标题 
set_x_axis(options)设置X轴 
set_y_axis(options)设置Y轴 
set_style(style_id)设置图表样式类型 

1.2 excel写入及绘图

1.2.1 折线图


# -*- coding:utf-8 -*-

import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_line.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
headings = ['Version', '1.0.27', '1.0.29', '1.0.30', '1.0.31']
data = [
    ['1', '-1', '-2', '-3', '-4', '-5'],
    [10, 40, 50, 20, 30, 50],
    [20, 60, 40, 10, 40, 30],
    [30, 40, 60, 10, 50, 10],
    [40, 30, 55, 15, 30, 30]
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
worksheet.write_column('D2', data[3])
worksheet.write_column('E2', data[4])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(line chart)
chart_col = workbook.add_chart({'type': 'line'})
# 配置第1个系列数据
chart_col.add_series({
    # 这里的Sheet1是默认的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$B$2:$B$7',
    'line': {'color': 'red'},
})
# 配置第2个系列数据
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$C$2:$C$7',
    'line': {'color': 'yellow'},
})
# 配置第二个系列数据
chart_col.add_series({
    'name': '=Sheet1!$D$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$D$2:$D$7',
    'line': {'color': 'blue'},
})
# 配置第二个系列数据
chart_col.add_series({
    'name': '=Sheet1!$E$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$E$2:$E$7',
    'line': {'color': 'green'},
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The dll return Analysis'})
chart_col.set_x_axis({'name': 'return value'})
chart_col.set_y_axis({'name':  'count'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet并设置偏移
worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})
# 关闭文件
workbook.close()

1108707-20190131235522751-291484069.png

1.2.2 柱状图


# -*- coding:utf-8 -*-
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_column.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()

# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})

# --------1、准备数据并写入excel---------------
headings = ['Version', '1.0.27', '1.0.29', '1.0.30', '1.0.31']
data = [
    ['1', '-1', '-2', '-3', '-4', '-5'],
    [10, 40, 50, 20, 30, 50],
    [20, 60, 40, 10, 40, 30],
    [30, 40, 60, 10, 50, 10],
    [40, 30, 55, 15, 30, 30]
]

# 写入表头
worksheet.write_row('A1', headings, bold)

# 写入数据
worksheet.write_column('A2', data[0], bold)
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
worksheet.write_column('D2', data[3])
worksheet.write_column('E2', data[4])

# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(column chart)
chart_col = workbook.add_chart({'type': 'column'})

# 配置第1个系列数据
chart_col.add_series({
    # sheet1是默认的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
    'fill': {'color': 'red', 'transparency': 30},
})

# 配置第2个系列数据
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$C$2:$C$7',
    'fill': {'color': 'blue', 'transparency': 30},
})

# 配置第3个系列数据
chart_col.add_series({
    'name': '=Sheet1!$D$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$D$2:$D$7',
    'fill': {'color': 'green', 'transparency': 30},
})

# 配置第4个系列数据
chart_col.add_series({
    'name': '=Sheet1!$E$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$E$2:$E$7',
    'fill': {'color': 'yellow', 'transparency': 30},
})

# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The dll return Analysis'})
chart_col.set_x_axis({'name': 'return value'})
chart_col.set_y_axis({'name':  'count'})

# 设置图表的风格
chart_col.set_style(1)

# 把图表插入到worksheet以及偏移
worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})

workbook.close()

1108707-20190131235553629-1535143711.png

1.2.3 饼图


# -*- coding:utf-8 -*-
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_pie.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()

# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})

# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
data = [
    ['1.0.27', '1.0.29', '1.0.30', '1.0.31'],
    [32, 23, 18, 25],
]

# 写入数据
worksheet.write_row('A1', data[0], bold)
worksheet.write_row('A2', data[1])

# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(pie chart)
chart_col = workbook.add_chart({'type': 'pie'})

# 配置第一个系列数据
chart_col.add_series({
    'name': 'Bug Counts',
    'categories': '=Sheet1!$A$1:$D$1',
    'values': '=Sheet1!$A$2:$D$2',
    'points': [
        {'fill': {'color': '#BC3FBC'}},
        {'fill': {'color': '#0DAD48'}},
        {'fill': {'color': '#D8B31C'}},
        {'fill': {'color': 'gray'}},
    ],

})

# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'Bug Counts'})

# 设置图表的风格,excel内置48种图表样式
chart_col.set_style(25)

# 把图表插入到worksheet以及坐标位置
worksheet.insert_chart('B10', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()

1108707-20190131235621278-1873438904.png

2. python操作cvs文件

2.1 csv文件简介

Comma-Separated Values逗号分隔值,其文件以纯文本的形式存储表格数据,广泛应用在程序之间转移表格数据,如何可以将csv直接在Excel中以表格的形式打开,也可以作为源数据直接导入到数据库当中。文件类似如下的形式,

OcrVersion,OcrResult,TimeExpend
1.0.0.27,-5,33.61749870069975
1.0.0.27,1,124.42219042629038
1.0.0.27,1,86.97660413336142
1.0.0.27,1,97.52896716737031
1.0.0.27,-5,0.48869203305051956
1.0.0.27,-5,0.5020905159192068
1.0.0.27,-5,0.4943334995215487

2.2 python读写cvs文件

2.3 pandas读取cvs数据及可视化

3. 总结

posted @ 2019-01-31 23:52 Blue影 阅读(...) 评论(...) 编辑 收藏

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PythonExcel转换为CSV,可以使用pandas库进行操作。首先,导入pandas库。然后,使用`pd.read_excel()`函数读取Excel文件,并指定`index_col=0`参数以在写入文件时不包含序列号。接下来,使用`to_csv()`函数将数据写入CSV文件。最后,通过调用`xlsx2csv()`函数来执行转换操作。以下是完整的Python代码: ```python import os import time import pandas as pd def xlsx2csv(): t1 = time.time() for f in os.listdir("./数据源/"): data = pd.read_excel("./数据源/" + f, index_col=0) data.to_csv("./转换结果/" + f + '.csv', encoding='utf-8') print("写入完成......") t2 = time.time() print(t2 - t1) xlsx2csv() ``` 这段代码会将指定文件夹下的所有Excel文件转换为CSV文件,并保存在指定的目标文件夹中。转换完成后,你可以在目标文件夹中找到相应的CSV文件。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [PythonExcel文件批量转CSV格式](https://blog.csdn.net/weixin_42636075/article/details/130819843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python 实现Excel 转 JSON](https://blog.csdn.net/sclarkca56/article/details/123918002)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值