Python按行打乱Excel表格数据
因做数学建模比赛,需要打乱训练数据,于是用python写了个简单的小程序,作用就是按行打乱Excel表格。
先说一下需要使用的第三方库openpyxl
Openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库,其功能非常强大。Excel表格可以理解为一个二维矩阵,行用1,2,3,4,5.....等表示,在Openpyxl可以用来作为行索引。列用A,B,C,D,E,F.......表示,在Openpyxl中可以用来当做列索引,描述一个单元格的位置需要一个行标、一个列标。如A1表示第一行第一列对应的单元格,E4表示第四行第五列对应的单元格。
更多操作方法见https://blog.csdn.net/weixin_43094965/article/details/82226263
效果图
上图原数据,下图打乱后数据
- 安装openpyxl
pip install openpyxl
- 大体思路
1. 首先读取Excel表格文件
# 随机按行打乱Excel表格
from openpyxl import Workbook
from openpyxl import load_workbook
import random# 读取文件
wb = load_workbook('data.xlsx')
2. 打开当前工作簿
ws = wb.active
3. 获取行数
ws.max_row
4. 创建一个从1到最大行数的数字列表,并随机打乱列表
Python生成随机数的原理是梅森旋转算法,感兴趣的可以了解下
numbers = list(range(1, ws.max_row + 1))
random.shuffle(numbers)
5. 遍历列表,根据每次随机数字选取一行,并复制到表格末尾
for i in numbers:row = ws[i]r = []for cell in row:r.append(cell.value)ws.append(r)
6. 删除原数据,保留复制的数据
ws.delete_rows(1, ws.max_row//2)
7.遍历工作簿,对所有工作簿数据都进行打乱
for ws in wb:#执行打乱操作
- 附上全代码
# 随机按行打乱Excel表格
from openpyxl import Workbook
from openpyxl import load_workbook
import random# 读取文件
wb = load_workbook('data.xlsx')
# 显示工作表数量
print("---该文件共" + str(len(wb.sheetnames)) + "个工作表---")def main():# 打乱所有工作簿for ws in wb:print("\n---开始打乱工作表[" + str(ws.title) + "]---")# 显示行数print("---行数:" + str(ws.max_row) + '---')random_data(ws)# 文件另存为data_random.xlsxwb.save('data_random.xlsx')print("\n---文件保存成功---")word = input("\n按下任意键退出")def random_data(ws):"""随机打乱数据"""print("---正在打乱数据---")numbers = list(range(1, ws.max_row + 1))# random()函数采用梅森旋转算法生成伪随机数random.shuffle(numbers)for i in numbers:row = ws[i]r = []for cell in row:r.append(cell.value)ws.append(r)ws.delete_rows(1, ws.max_row//2)if __name__ == "__main__":main()
Python按行打乱Excel表格数据相关推荐
- python使用openpyxl处理excel表格数据
python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...
- Python写入和读取Excel表格数据
Python作为一个强大的数据处理工具,这里简单介绍下python读取写入excel表格数据. 一.python写入excel表格 导入xlwt模块 生成一个空的excel表格,命名为my_test. ...
- 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...
- Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...
- 【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据
前言 大家好,我是阿光. 本专栏整理了<Pandas数据分析处理>,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据. 正在更新中~ ✨
- python修改excel数据-python之实现对excel表格数据的修改
题目: 有一个名为produceSales.xlsx的表格文件,每一行代表一次单独的销售纪录,第一列(A)是产品名字,第二行(B)是产品价格,第三行(C)是销售的数量,第四行(D)是本次销售总收入(根 ...
- python导入excel表格-Python 将Excel表格数据导入MySQL数据库
今天分享一个刚刚完成的Python脚本,一个实用的小技能,就是利用Python代码,将EXCEL表格数据导入到MySQL数据库中!话不多说,下面代码示例. Excel表格数据.jpg 1示例代码: i ...
- python 显示表格数据_python显示excel表格数据-怎么用python读取excel表格的数据
怎么用python读取excel表格的数据 #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\datap.xlsx' #打开 data=xl ...
- pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容
如何用python将数据写入excel表格 # 需 xlrd-0.9.2 xlutils-1.7.1 这两个模块 from xlwt import Workbook, Formula import ...
最新文章
- NOVA 日志报错解决办法
- Flink从入门到精通100篇(十一)-Java SPI 机制在 Flink SQL 中的应用
- 想学数据分析但不会Python,过来看看SQL吧(上)~
- P1352 没有上司的舞会
- mysql更新数据能回滚吗_MySQL数据回滚-误更新和删除时快速恢复
- Qt使用udp的Broadcast实现广播图片
- Modify HTTP Headers (Examples)
- python制作物联网控制软件下载_Python+树莓派制作IoT(物联网)门控设备
- 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/
- FTP 编写 4:命令解析
- 我一直以为做知识付费的老师是非常赚钱的
- java-HDU1698(线段树的区间更新,和区间查询)
- centos安装pip失败:No package pip available.
- 天天生鲜项目页面——商品列表页
- 电信移动中兴B860AV2.1-1.1T-1.2系列晶晨S905L芯片-刷机固件包
- 安卓ExpandableListView的详细使用教程(附代码解析过程)
- C# gdal创建和读取tiff文件
- 会计信息质量可靠性的案例_论会计信息质量特征及其可靠性
- 求最小码距 (10 分)
- 各平台免费翻译API
热门文章
- vs code 非常好看的vue代码颜色配置教程
- 新标准下,涉密信息系统集成资质都有哪些变化?
- LeetCode 6077. 巫师的总力量和
- 保弘实业|普通家庭如何做好理财规划?
- feign报the bean 'item-service.FeignClientSpecification', defined in null, could not be registered.错误
- 基于深度学习的图像识别算法研究
- IT界的笑话(更新版)
- 《你不知道的JavaScript(上卷)》阅读随笔
- android 无线充电架构,大神发现Android 11隐藏新功能:反向无线充电放心了
- MySQL 语句级避免重复插入—— Insert Select Not Exist