因做数学建模比赛,需要打乱训练数据,于是用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表格数据相关推荐

  1. python使用openpyxl处理excel表格数据

    python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...

  2. Python写入和读取Excel表格数据

    Python作为一个强大的数据处理工具,这里简单介绍下python读取写入excel表格数据. 一.python写入excel表格 导入xlwt模块 生成一个空的excel表格,命名为my_test. ...

  3. 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用

    前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...

  4. Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容

    1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个记录北京市部分PM2.5浓度监测站点信息的Excel表格数据,格式为.xls:文件内包含站点编号.X与Y坐标.站点名称等四列数据 ...

  5. 【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据

    前言 大家好,我是阿光. 本专栏整理了<Pandas数据分析处理>,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据. 正在更新中~ ✨

  6. python修改excel数据-python之实现对excel表格数据的修改

    题目: 有一个名为produceSales.xlsx的表格文件,每一行代表一次单独的销售纪录,第一列(A)是产品名字,第二行(B)是产品价格,第三行(C)是销售的数量,第四行(D)是本次销售总收入(根 ...

  7. python导入excel表格-Python 将Excel表格数据导入MySQL数据库

    今天分享一个刚刚完成的Python脚本,一个实用的小技能,就是利用Python代码,将EXCEL表格数据导入到MySQL数据库中!话不多说,下面代码示例. Excel表格数据.jpg 1示例代码: i ...

  8. python 显示表格数据_python显示excel表格数据-怎么用python读取excel表格的数据

    怎么用python读取excel表格的数据 #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\datap.xlsx' #打开 data=xl ...

  9. pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容

    如何用python将数据写入excel表格 # 需 xlrd-0.9.2  xlutils-1.7.1 这两个模块 from xlwt import Workbook, Formula import  ...

最新文章

  1. NOVA 日志报错解决办法
  2. Flink从入门到精通100篇(十一)-Java SPI 机制在 Flink SQL 中的应用
  3. 想学数据分析但不会Python,过来看看SQL吧(上)~
  4. P1352 没有上司的舞会
  5. mysql更新数据能回滚吗_MySQL数据回滚-误更新和删除时快速恢复
  6. Qt使用udp的Broadcast实现广播图片
  7. Modify HTTP Headers (Examples)
  8. python制作物联网控制软件下载_Python+树莓派制作IoT(物联网)门控设备
  9. 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/
  10. FTP 编写 4:命令解析
  11. 我一直以为做知识付费的老师是非常赚钱的
  12. java-HDU1698(线段树的区间更新,和区间查询)
  13. centos安装pip失败:No package pip available.
  14. 天天生鲜项目页面——商品列表页
  15. 电信移动中兴B860AV2.1-1.1T-1.2系列晶晨S905L芯片-刷机固件包
  16. 安卓ExpandableListView的详细使用教程(附代码解析过程)
  17. C# gdal创建和读取tiff文件
  18. 会计信息质量可靠性的案例_论会计信息质量特征及其可靠性
  19. 求最小码距 (10 分)
  20. 各平台免费翻译API

热门文章

  1. vs code 非常好看的vue代码颜色配置教程
  2. 新标准下,涉密信息系统集成资质都有哪些变化?
  3. LeetCode 6077. 巫师的总力量和
  4. 保弘实业|普通家庭如何做好理财规划?
  5. feign报the bean 'item-service.FeignClientSpecification', defined in null, could not be registered.错误
  6. 基于深度学习的图像识别算法研究
  7. IT界的笑话(更新版)
  8. 《你不知道的JavaScript(上卷)》阅读随笔
  9. android 无线充电架构,大神发现Android 11隐藏新功能:反向无线充电放心了
  10. MySQL 语句级避免重复插入—— Insert Select Not Exist