数学建模常用读取excel和txt代码


在数学建模比赛的过程中,为了能够验证算法,就需要导入题目给出的数据,但我们每次寻找代码费时费力,我在这里把之前的建过的模型中常用的数据读取代码总结起来,数学建模常用的两种语言是matlab和python,我在这里也给出这两种语言的读取代码。

一、matlab篇

matlab对于给出的数据有两种引进方法,一种是直接导入到.mat文件里,还有一种就是写代码读取文件,对于小文件来说影响不大,但如果文件特别特别大,运行时间就有明显差异(比如股票数据),.mat就能快很多,但是如果数据有变化,就要重新制作.mat文件,这比较麻烦,因此综合来看,直接读取

1.1.读取.xls和.xlsx的数据

% num1返回的是excel中的数据,txt输出的是文本内容,raw输出的是未处理数据
% 函数的第一个参数是文件路径,第二个参数是sheet序号
[num1,txt,raw]=xlsread('data.xlsx',1);

数据视图
在这里插入图片描述
导入后的参考
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.读取.csv的数据

csvread函数三种用法

% 读取逗号分隔值格式的文件名。结果直接返回给M。因此,文件只能包含数值。
M = csvread(filename)
% 从逗号分隔值格式的文件中读取数据(从R行和C列开始)。R和C从零开始,因此R=0和C=0指定文件中的第一个值。即csv文件中的第一行为该函数的第0行,csv文件中的第一列为该函数的第0列。
M = csvread(filename,R1,C1)
% 只读取由RNG=[R1 C1 R2 C2]指定的范围,其中(R1,C1)是要读取的数据的左上角,R2,C2)是右下角。也可以使用电子表格表示法指定RNG,如RNG=’A1..B7’。
M = csvread(filename,R1,C1,[R1 C1 R2 C2])

示例:
数据图在这里插入图片描述
M = csvread(filename,R1,C1)读取后的
在这里插入图片描述
matlab代码非常的简练,对于数学建模来说,matlab是一大利器,但是相较于python来说,matlab运行时间可能相对较长,对于分析数据量大的题还是建议python。

二、python篇

在本人看来,python优点在于库非常的丰富,很多的算法都有很多现成的库,这是它最大的优点,而且还开源,不用担心被漂亮国制裁,因此很多时候我会考虑用python进行算法实现,但是我的python水平不是很高,特别是numpy掌握的不是很好,所以还是常用matlab。
对于python来说有很多种读取数据的方法,对于不同的库有不同的方法。这里主要介绍常用的库。下载库只要命令行内pip install 库名就好啦
在这里插入图片描述

2.1.pandas库

对于python的读取操作常用的有openpyxl、pandas和xlrd。从时间效率角度来看,xlrd是最好的,而从功能角度来看,pandas是最好的。

① pandas一般解决表格型的数据、二维的。

② pandas是专门为处理表格和混杂数据设计的,而Numpy更适合处理统一数值数据。

③ pandas主要数据结构:Series 和 DataFrame

对pandas库具体的讲解可见小王同学在积累

2.1.1.xlsx和xls的读取和写入

对于读取的,就不CV了,直接放链接
【python】读取excel的行列内容,pandas,超详细!!!
这是写入的链接:
【文件处理】——Python pandas 写入数据到excel中

2.1.2.csv的读取和写入

对于csv文件的读取主要用到了read_csv函数

import pandas
df = pandas.read_csv('hrdata.csv')
print(df)

这是引用了python pandas 解析(读取、写入) CSV 文件_qiuqiu1027
这里面也有写入代码

2.2.openpyxl库读取写入

对于这个第三方库,一个excel文件包含三个重要的对象:一个excel文件为一个workbook对象,一个sheet为一个worksheet对象,一个单元格为一个cell对象。
1:WorkBook 属性

sheetnames:返回所有WorkSheets的名字列表,以list形式存储

worksheets:返回所有WorkSheet的列表,以list形式存储

avtive:返回当前默人选中的WorkSheet

2:WorkSheet属性

3:cell属性

该库有一个限制就是:后缀必须是.xlsx (因为openpyxl只支持这种格式),但是它同时支持.xlsx格式的读取写入,并且支持写入公式等,一个库做到xlrd和xlwt两个库的功能。

#读取data文件的代码
from openpyxl import load_workbook
# 1.打开 Excel 表格并获取表格名称
workbook = load_workbook("data.xlsx")
print(workbook.sheetnames)
# 2.通过 sheet 名称获取表格
sheet = workbook["实例1"]
print(sheet)
# 3.获取表格的尺寸大小(几行几列数据) 这里所说的尺寸大小,指的是 excel 表格中的数据有几行几列,针对的是不同的 sheet 而言。
print(sheet.dimensions)
# 4.获取表格内某个格子的数据
# 1 sheet["A1"]方式
cell1 = sheet["A1"]
cell2 = sheet["B11"]
print(cell1.value, cell2.value)
"""
workbook.active 打开激活的表格; sheet["A1"] 获取 A1 格子的数据; cell.value 获取格子中的值;
"""
# 4.2sheet.cell(row=, column=)方式
cell1 = sheet.cell(row = 1,column = 1)
cell2 = sheet.cell(row = 11,column = 3)
print(cell1.value, cell2.value)
 
# 5. 获取一系列格子
# 获取 A1:B2 区域的值
cell = sheet["A1:B2"]
print(cell)
for i in cell:
   for j in i:
       print(j.value)

这个代码忘了引用哪篇了T_T。后面如果我自己有实例再改。
python我的实战实例并不多,后续碰到再完善我自己的。

参考的博客链接

Matlab读取excel文件中的数据_星夜孤帆
Matlab读取csv文件csvread函数的使用_Thomas会写字
python之openpyxl,详解,实战_云淡风轻-测试仔

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值