最近在写论文做实验的过程中,利用python自带的matplotlib库进行绘画,但是尝尝会出现在程序跑完后发现图片里面有一些小细节没有注意到,导致整个代码重新跑。代码重新跑短则几小时,长则就不好说了,导致时间成本飞升。如果能将代码跑出来的数据导入到Excel中,利用Excel或者matlab来画图,不是就可以解决上述问题了。

学习python对Excel进行读写操作,在此记录一下。

python对Excel进行读操作:

一.利用pandas库来完成读操作

import pandas as pddef pd_read(file_path):""":param file_path: 文件路径:return: 数据数组"""dataset = pd.read_excel(file_path, header=0)return dataset

当然.read_excel方法不仅仅只有上述代码中两个参数,下面对.read_excel方法常用的几个参数进行简单说明。

1.io:文件路径,可以是绝对路径或者相对路径
2.sheet_name:指定读取的sheet名。可以是数字,sheet名,以列表形式表现的sheet名
3.header:指定标题行,不指定默认第一行为标题行。header = None,没有标题行,所有都是数据
4.names:在header=None的前提下,补充列名。若header与names都存在的情况下,以names为标题行
5.index_col:用于指定那一列为行索引
6.usecols:用于指定读取的列。usecols = [1,2,3],读取第2-4列;usecols = None,读取所有列;其他形式的写法验证都不通过。
7.squeeze:如果源数据数据或者读取的数据只有一列,squeeze = False时读取的结果是*行1列的dataframe结构,如果squeeze = True时读取的结果是一个Series结构。
        虽然还有很多参数,没有介绍,个人认为这些是比较常用的。

此外,利用.read_excel方法得到的返回值是DataFrame类型,他会自带行索引。

对于DataFrame类型数据,可以使用.colums来获取列名(前提是设置了列名)。在进行切片操作的时候.iloc[n]用于读取第n行数据,注.iloc只能用数字进行索引;.loc['label']用于读取列名为label的列,注.loc只能通过列名进行索引。

二.利用csv库进行读操作:

import csvdef csv_read(file_path):with open(file_path, "r", encoding='utf-8') as f:f.readline()  # 去除CSV中第一行的值将指针设置在第二行reader = csv.reader(f)for row in reader:# 对每一行数据进行处理print(row)

执行readline() 时,code会扫描文件中的每一个字节,直到找到一个 \n 位置,然后停止并读取此前的文件内容。并且fileobject 会记录每次调用readline()后的对于读取位置,这样readline()下次被调用的时候就会读取下一行。这里用到的方法是一行一行的读取数据,读取到的行数据进行需要的处理即可。

注:csv方法打开Excel的.xslx文件会报错,可以先将.xslx转化成.csv文件。(如果有其他的办法,希望不吝赐教)

python对Excel进行写操作:

一.使用openpyxl库中Workbook完成写操作

import numpy as np
from openpyxl import Workbookdef write_data(save_path, dataset):""":param save_path:保存路径 :param dataset: 要写入的数据集"""wb = Workbook()  # 创建一个workbookws = wb.active  # 调用活动的工作表ws.title = 'New Title'# ws1 = wb.create_sheet()  # 在当前workbook的结尾处追加一个新的worksheet,名称是自动赋值的,如Sheet1,Sheet2,....# ws2 = wb.create_sheet(index=0)  # 在当前workbook的指定索引处追加一个新的worksheet,名称是自动赋值的,如Sheet1,Sheet2,....# ws1.title = "New Title1"  # 指定sheet名称为New Title1# ws2.title = "New Title2"  # 指定sheet名称为New Title2m, n = np.shape(dataset)# 写入表头header = dataset.columnsnum_item = len(header)  # 505for i in range(num_item):ws.cell(1, i+1).value = header[i]# 写入数据for i in range(m):for j in range(n):ws.cell(i+2, j + 1).value = dataset.iloc[i, j]wb.save(save_path)  # 以上处理都是在内存中的,save表示将最终的结果导出到本地文件上

所用的操作基本上都在代码中添加了备注,在这就不做过多的叙述了。

ws.cell(x, y).value=data,是将data写入目标Excel文件的工作页的(x, y)位置。与python的下标不同Excel的下标起始是从1开始,在写入数据的时候需要注意一下。

二.利用csv库进行写操作:

import csvdef csv_save(save_path, dataset):with open("test.csv", "w", newline='') as csvfile:writer = csv.writer(csvfile)m = np.shape(dataset)[0]  # 行数# 获取表头header = dataset.columnswriter.writerow(header)# 写入数据for i in range(m):writer.writerow(dataset.iloc[i])  # 一行一行的写入

其中.writerow()是将一行数据写入,如果想同时写入多行就需要使用.writerows()方法.

要注意一点的是,这里所有写操作使用的数据集是前面用pandas库读出来的数据,所以是DataFrame的形式。

利用python对Excel进行读写操作相关推荐

  1. python对excel进行读写操作

    python对excel进行读写操作 欢迎使用Markdown编辑器 一.安装库 1.安装xlrd模块 2.安装xlwt模块 2.安装openpyxl模块 补充(多个python版本) 二.使用介绍 ...

  2. python写表格_使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  3. excel调用python编程-使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  4. 利用python对excel文件进行操作_数据处理-对Excel文件读取和操作和存储(python版)...

    一:利用python读取Excel中.xls文件中所有数据 #encoding=utf-8 import xlrd import xlwt from xlwt import * fileName=&q ...

  5. Python对excel表格读写操作

    1.测试代码如下: # -*- coding-8 -*- from openpyxl import *def data_wr(r,c,data):print(ws.cell(row=r, column ...

  6. Python对excel表格进行操作

    利用Python对Excel表格进行操作 对Excel表格进行操作首先需要下载好第三方库(Xlrd,Xlwt,xlutils,XlsxWriter) 对表格元素进行遍历操作 import xlrd # ...

  7. python 表格格式输出_利用python对excel中一列的时间数据更改格式操作

    问题场景:需要将下列的交期一列的数据格式更改成2019/05/10 存货编码 尺寸 数量 交期 0 K10Y0190000X B140 200 2019-05-10 00:00:00 1 K10Y01 ...

  8. 利用python处理excel表格

    利用python处理excel表格 注意事项:在excel打开状态下无法进行写入和保存,但是可以读取. 1.excel的两种格式(xlsx,xls) 建议使用xlsx,遇到xls统统都用pandas转 ...

  9. 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?

    如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...

最新文章

  1. javascript的特点
  2. 原创 | 从智慧交通、智慧安防、智能电网三大应用场景看我国智慧城市建设现状...
  3. 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
  4. mybatis 配置
  5. mysql子查询sysdate_Oracle向MySQL 迁移相关事项
  6. 常见维修电路板技术汇总
  7. P7515-[省选联考 2021A卷]矩阵游戏【差分约束】
  8. coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法
  9. 一道非齐次方程组解的判定习题--行向量
  10. OpenGL二维纹理映射(2D textures)
  11. Git报错:/c/Users/zhouy/AppData/Roaming/npm/hexo: line 12: node: command not found
  12. C#设置点击打开外部exe程序,并判断是否程序已开启,未开启的话打开,已经在运行了就前置
  13. 云知声打磨四年的AI芯片出炉,中国造芯势力群起
  14. 摄影构图学83年绝版_摄影到底是一门技术还是艺术?在摄影创作中,如何提高审美意境?...
  15. mmdetection使用
  16. 华为mate50pro和小米12ultea对比
  17. 开发过程中swagger-ui快速集成详解
  18. 【T+】删除/取消畅捷通T+软件登录账套后的“查看认证”按钮
  19. [FMG]两个简单的JSP+servlet小程序
  20. 信号完整性分析系列——1基本概念

热门文章

  1. 当前台式计算机新款,苹果发布全线新款台式Mac机
  2. 图像之超简单方式实现微信头像功能
  3. OpenStack配置Cinder出现“You must set cylinders.You can do this from the extra functions menu.”解决办法
  4. 2020起重机司机(限桥式起重机)作业考试题库及起重机司机(限桥式起重机)实操考试视频
  5. C# DataGridView控件动态添加行与列
  6. FT4232H Android开发 2 - 建立一个FTDI设备的样板工程
  7. python和易语言哪个容易胖_坐着长肉还是躺着长肉 哪个更容易胖
  8. 免费搭建企业级直播平台,破解H5Storm限制
  9. 曾善美一女大学生的创业之路
  10. 用 Word2016 编辑花体和空心字母