python处理excel大量数据慢,python用于excel数据处理

python处理excel大量数据慢,pythonexcel数据处理范例 在利用机器学习的分类前需要对所有数据进行整合存在一个文件中,并且需要将距离分割出来作为特征之一,将波形和噪声分别作为labels(二分类问题);完成了对于数据的转移; 阅读详情

这篇文章主要介绍了python如何处理数据量很大的excel文件,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

太离谱了 我觉得不bbbbbbbbbbbb上500字都对不起我的惨痛!!

从昨天下午拿到任务到今天早上!!! 我吐了!!!

这两星期打杂打的整个计算机学院的老底都要被我摸透了无语。python实现猴子跳台阶。。

昨天接到的任务是:大概就是一届所有计院的学生的所有毕业设计的小分每个人都放在一个excel里面(也就是总共200+excel) 然后从每个excel里面取出各个单元格里的小分,汇总到一个excel里面。。。在这个汇总的excel里面已经有了学生的名字。。。

没有困难的工作。。只有勇敢的打工人(*  ̄︿ ̄)

一开始 我觉得不就是用python处理excel。。这还不简单????

最后我 TM。。。凸(艹皿艹 )

这数据问题有多大老师知道吗???她不知道!!她不知道!!!比如汇总的excel里面的名字有265个,但事实上她给我的表格只有250+个。。比如有些人名字在汇总的名单里叫ABC,但是。。。在表格的名字上就是ACB。。。这种错误看似小。。在代码上就很致命(微笑脸

言归正传。。

一开始我是想用glob获取文件夹中的所有文件名存在列表里 方便后面打开

import glob

files = glob.glob(r'../2/*.xlsx')

返回的是文件夹2里所有xlsx文件。。好了写着写着我发现了一个问题,就是不是所有的excel的文件的后缀名都是xlsx。还有些是xls,xlsm之类的。于是回炉重造一下。

#获取所有文件夹中的所有文件名

files = glob.glob(r'../2/*.*')

但是这样以后就会出现xls类型的文件是不适应我下文的代码的。。做到这一步我实在是没有耐心了,于是我手动把xls这几个文件给移出去了。(我就很离谱= =)

我先是想着从提取出来的文件名列表中用正则表达式把每个人的名字提取出来的。。但失败了。。囧。。我以为我正则表达式就还行了。。发现一对到那种各种特殊字符全加一起的就出问题。。就像下面这个一样,有缘我就再努力努力把某某某提取出来。。

../2\\某某某.xlsx

于是后来我选择了os某块里面的walk函数,也就是把文件夹下面的文件全走一遍,就提取出来最直接的那个文件名,比如某某某.xlsx。那这个提取名字还不简单吗。

#获取所有学生姓名

names = []

for root, dirs, file in os.walk('../2'):

for item in file:

pattern = re.compile('(.+).xl\w+')

names.append(pattern.search(item).group(1))

然后我给每个指标建立了一个列表,一张一张打开excel从它里面的单元格里取出来

for file in files:

f = load_workbook(file, data_only = True)

#获取第一个表

E = f.active

t1 = E.cell(row=9, column=13).value

t2 = E.cell(row=10, column=13).value

t3 = E.cell(row=11, column=13).value

t4 = E.cell(row=12, column=13).value

t5 = E.cell(row=13, column=13).value

t6 = E.cell(row=14, column=13).value

a2_2.append(t1)

a3_4.append(t2)

a5_3.append(t3)

a10_1.append(t4)

a10_2.append(t5)

a10_3.append(t6)

这看起来也太笨拙累赘了吧。。

于是后来我把一个一个加到列表这几句改成了如下句。。就先建立了一个字典。。

info_zip = {}

for i in range(len(files)):

f = load_workbook(files[i], data_only = True)

#获取第一个表

E = f.active

t1 = E.cell(row=9, column=13).value

t2 = E.cell(row=10, column=13).value

t3 = E.cell(row=11, column=13).value

t4 = E.cell(row=12, column=13).value

t5 = E.cell(row=13, column=13).value

t6 = E.cell(row=14, column=13).value

info_zip[names[i]] = [t1, t2, t3, t4, t5, t6]

因为那个excel里面各个毕业学生都是有顺序的嘛,所以我还得从那个汇总的excel里面取出来名字的列表

#读取数据

rb = xlrd.open_workbook(file_path)

table = rb.sheets()[0]

names_org = table.col_values(2)[1:]

因为表格里有的名字不一定跟文件里的名字对的上,所以得先判断过才能放进去。。就写进去的代码如下。。

for i in range(len(names)):

stu_name = names_org[i]

if stu_name in info_zip:

for j in range(6):

ws.write(i + 1, j + 5, info_zip[stu_name][j])

就离谱。。中间经历的各种坎坷我现在都有点忘了。。反正就整个过程就不平坦。还是怪我太vegetable。。继续努力努力。老师也别让我再继续去摸计院的底了好吗。。我不想再知道计院的任何了T T

遇到的问题:

一开始的时候我从excel里面取数据的时候,在load_workbook的函数里面是没加参数data_only这个参数的,所以当时取出来的是单元格里的那个公式。要加上data_only=True这个参数才可以取出来纯数据。

还有xlrd这个模块写入excel的时候xlsx文件是不兼容的,所以写进去以后这个文件就会打不开,最后是把xlsx文件改成xls文件才ok的。

(就过了一天遇到的问题就记得这两个了( ╯□╰ )

总的代码如下。。其实中间有很多改过了。。跟上面有一点点差距 就问题不大 应该。。

import xlwt

import xlrd

import os

import glob

from openpyxl import load_workbook

import re

import xlutils.copy

datas_path = "../2"

file_path = "../data/2.xls"

#读取数据

rb = xlrd.open_workbook(file_path)

table = rb.sheets()[0]

names = table.col_values(2)[1:]

#写入的表格

wb = xlutils.copy.copy(rb)

ws = wb.get_sheet(0)

#获取所有文件夹中的所有文件名

files = glob.glob(r'../2/*.*')

#给名字和文件名排序尽量使其顺序保持一致

files.sort()

names_sort = sorted(names)

# print(len(files))

# print(len(names))

# print(files)

# print(names)

info_zip = {}

j = 0

for i in range(len(files)):

while(re.search(names_sort[j], files[i]) == None):

j = j + 1

f = load_workbook(files[i], data_only = True)

#获取第一个表

E = f.active

t1 = E.cell(row=9, column=13).value

t2 = E.cell(row=10, column=13).value

t3 = E.cell(row=11, column=13).value

t4 = E.cell(row=12, column=13).value

t5 = E.cell(row=13, column=13).value

t6 = E.cell(row=14, column=13).value

info_zip[names_sort[j]] = [t1, t2, t3, t4, t5, t6]

for i in range(len(names)):

stu_name = names[i]

if stu_name in info_zip:

for j in range(6):

ws.write(i + 1, j + 5, info_zip[stu_name][j])

wb.save(file_path)

啊啊啊啊啊啊每天晚上都要早睡!!!每天早上都要  一觉~睡到自然醒过来!!!!!

本文地址:https://blog.youkuaiyun.com/qq_39782006/article/details/109614413

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

Python处理Excel数据的方法 当Excel中有大量需要进行处理的数据时,使用Python不失为一种便捷易学的方法。接下来,本文将详细介绍多种Python方法来处理Excel数据。 阅读详情

相关推荐

python处理excel大量数据慢,python怎么处理excel数据

大家好,本文将围绕python如何处理数据量很大的excel文件展开说明,用python处理大量的excel表格是一个很多人都想弄明白的事情,想搞清楚python excel数据处理openpyxl需要先了解以下几个事情。我们在日常工作中常常见到各种后缀的电子表格,例如最常见的xlsx以及较为常见的csv、xls等格式的表格。同样是电子表格,它们之间有什么区别吗?• xls为Excel早期表格格式。xls格式是Excel2003版本及其以前版本所生成的文件格式。

Bxwfjdjdbdgj的博客 1298

灵魂拷问:读取 excel 测试数据真的慢吗?

在实现自动化测试的时候,我们经常会使用数据驱动。所以我们经常会把测试数据单独保存在一个特定格式的文件当中,然后通过读取文件去驱动自动化测试代码。 这篇文章会对比 Excel、CSV 和 YAML 三种主流的文件格式,看看它们哪个更好。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 122

python处理excel大量数据慢,python处理excel数据教程

话说现在的年轻人,听说过这个编程语言的应该不多了。VB是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言,它源自于BASIC编程语言,也属于高级语言的一种了。只是现在各大应用场景以及被Java、Go、Python等编程语言瓜分一空,VB基本很少人知道了。

神经网络爱好者 1188

【学习笔记】python实现excel数据处理

概述 Excel固然功能强大,也有许多函数实现数据处理功能,但是Excel仍需大量人工操作,虽然能嵌入VB脚本宏,但也容易染上宏病毒。python作为解释性语言,在数据处理方面拥有强大的函数库以及第三方库,excel作为主要基础数据源之一,在利用数据进行分析前往往需要预先对数据进行整理。因此,本文就python处理excel数据进行了学习,主要分为python对excel数据处理的常用数据类型以及...

凌bb的笔记本 14万+

Python批量处理大量excel数据(含完整代码)

一、导入数据 二、空表创建 三、数据增删查改 四、批量处理 五、常用的数据处理方法 六、表格存储 批量表格处理完整代码:将多张表的信息进行汇总

web15085599741的博客 1万+

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3950

Python读写Excel实现大量数据处理

Python读写Excel实现大量数据处理 我们经常需要 导入数据到Excel、从Excel导出数据、对Excel中的数据进行处理。 如果 要处理的数据量很大,人工操作非常费时间。 我们可以通过Python程序,自动化Excel的数据处理,帮我们节省大量的时间。 读取Excel中的数据 点击这里,边看视频讲解,边学习以下内容 如果我们只是要 读取 Excel文件里面的数据进行处理,可以使用 xlrd 这个库。 首先我们安装xlrd库,执行下面的命令 pip install xlrd==1.2.0 注意:x

Mechanic_1的博客 3673

FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)

本文提供了一份详细的FAST-LIO2实战指南,帮助读者从零开始搭建香港大学火星实验室开源的这一高效激光惯性里程计框架。内容涵盖系统环境配置、依赖安装、源码编译、官方数据集测试以及参数调优,旨在让开发者快速上手并应用于机器人SLAM项目。

ppp33的博客 689

如何基于Python对Excel大量数据进行处理?

通过 Python,我们可以轻松地读取、写入、清洗、转换和分析 Excel 中的大量数据,极大地提升了工作效率。本文将深入探讨如何使用 Python 来高效处理 Excel 中的大量数据,并介绍一些实用的技巧和工具,帮助你成为一名更加高效的数据分析师。如果你正在考虑提升自己的数据分析能力,不妨考虑参加《CDA数据分析师》课程,它能为你提供系统的学习路径,助你在数据科学领域更进一步。从基本的读写操作到高级的数据清洗、分析和可视化,再到针对大数据集的优化方案,每一步都离不开 Python 强大的生态系统支持。

cda2024的博客 1595

Nordic nRF52832实战:手把手教你搭建智能手环BLE通信框架(附完整代码)

本文详细介绍了如何使用Nordic nRF52832芯片搭建智能手环的BLE通信框架,涵盖芯片优势、协议栈初始化、低功耗广播策略及健康数据服务实现。通过完整代码示例和架构设计,帮助开发者快速掌握蓝牙低功耗通信技术,适用于可穿戴设备开发。

weixin_29192141的博客 249

sentaurus学习笔记(一)器件仿真

之前有跟大家说,以后转到sentaurus,因此silvaco会用的比较少,结果发现真的有一点贪心厌旧的感觉,现在基本上不用silvaco(lll¬ω¬)故这篇文章,将为大家带来的是关于sentaurus的结构仿真和器件的特性的提取。我们还是老规矩,先上结构图。 还是一个经典的IGBT结构,这是一个典型的N型IGBT,下面我将把一些相关的结构,和具体的写法用下面一幅图表达出来。 这里因为方便看,我们把器件的比例画的比较抽象。可以看到的是,这里有很多的距离参数是用一些变量名来写的,这也是sentaurus

weixin_43262021的博客 2万+
上一篇: 用python写的好玩的小程序,用python编写小程序
下一篇: python选择哪个版本安装,python一般安装哪个版本
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值