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

文章目录

  • 一、初始数据类型
  • 二、步骤代码
    • 1.引入库
    • 2.数据要求
    • 3.读入数据
  • 总结


一、初始数据类型

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

数据文本 标签
AAAAAAAAA 1
BBBBBBB 2
CCCCCCCCCC 1
DDDDDD 3

二、步骤代码

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格式

你可能感兴趣的:(python,机器学习,数据分析)