Python实现将excel的文字类数据划分为训练集、验证集与测试集。


一、初始数据类型

使用数据样例为excel表中的文本类型,一共两列,第一列为文本数据,第二列为数据标签,为数字。
示例:

数据文本标签
AAAAAAAAA1
BBBBBBB2
CCCCCCCCCC1
DDDDDD3

二、步骤代码

1.引入库

代码如下(示例):

from sklearn.model_selection import train_test_split
import xlrd
import xlwt

2.数据要求

这里要求使用数据传入必须是xls 格式,如果表格格式为xlsx,由于xlrd库的高版本不再支持xlsx格式,就会产生无法读取的错误。
(可以修改xlsx为xls格式,但是不能直接修改后缀,要打开之后另存为xls或者另外创建一个xls并复制数据)

3.读入数据

代码如下(示例):
将数据按6:2:2将数据分隔为训练集、测试集、验证集

f1 = xlrd.open_workbook('初始数据表.xls')
sheet = f1.sheet_by_index(0)
rows = sheet.nrows
data = [[] for i in range(rows-1)]
for i in range(1, rows):
    data[i-1] = sheet.row_values(i)[0:2] # 去掉序号,取四个数据

for i in range(0,len(data)):
	#如果是String类型的数据,strip()方法那么可以将文本前后的所得空格去掉
    if isinstance(data[i][0], str):
        data[i][0] = data[i][0].strip()



#分为测试集和训练集,测试集占比0.2
train, c_test = train_test_split(data, test_size=0.2, random_state=42)
#将训练集的四分之一设置为验证集,使训练集、测试集、验证集的比例为622
c_train, c_dev = train_test_split(train, test_size=0.25, random_state=42)

workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet")

for i in range(len(c_train)):
    for j in range(len(c_train[i])):
        sheet.write(i, j, c_train[i][j])
workbook.save("train.xls")

workbook2 = xlwt.Workbook()
sheet = workbook2.add_sheet("Sheet")

for i in range(len(c_test)):
    for j in range(len(c_test[i])):
        sheet.write(i, j, c_test[i][j])
workbook2.save("test.xls")

workbook3 = xlwt.Workbook()
sheet = workbook3.add_sheet("Sheet")

for i in range(len(c_dev)):
    for j in range(len(c_dev[i])):
        sheet.write(i, j, c_dev[i][j])
workbook3.save("dev.xls")

总结

由于不怎么会python,这个方法有好多的局限性。之后如有需要可以将数据转化为csv格式或者txt格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值