python进行excel随机抽样 您所在的位置:网站首页 excel的随机函数实现 python进行excel随机抽样

python进行excel随机抽样

2024-01-18 01:31| 来源: 网络整理| 查看: 265

最近需要对多个excel中数万条数据进行随机抽样,采用python进行。 excel读取和写入使用openpyxl第三方库。 随机抽样使用random.sample函数。 (抽取遇到的最大问题是不知道如何读取指定一行,采取直接读取的rows=ws.rows这样生成的是一个生成器对象,并不能写入,一直遇到提示错误 ValueError: Cells cannot be copied from other worksheets 最后采取自定义函数的方式,还是得单个单元格读取value,一行一行读出来。) 初学python,方法笨拙,如果各位有更好的处理方法,万望赐教。

代码:

import openpyxl import random #定义一个函数,获取excel指定行的数据。 def get_row_value(ws,row): col_num=ws.max_column row_data=[] for i in range(1,col_num+1): cell_value=ws.cell(row=row,column=i).value row_data.append(cell_value) return row_data file_name_list=[]#将文件名集合放在一个列表。 for file_name in file_name_list: #读取 wb=load_workbook(file_name) sheet=wb.active row_num=sheet.max_row random_num=random.sample(range(2,row_num+1),20)#随机抽取20个样本,第一行是表头,不取。 #写入一个新的excel表格 wb2=openpyxl.Workbook() sheet2=wb.active sheet2.append(get_row_value(sheet,1))#自定义的函数,传入两个参数,一个是前文读取的文件,一个是要读取的行数。 #读取随机抽取的行数并写入。 for i in random_num: row=get_row_value(sheet2,i) sheet.append(row) sheet.append(['生成的随机数为:']+random_num) #保存 out_file_name=file_name+'_out.xlsx' wb.save(out_file_name) print('抽样成功')


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有