最近下载了一个很大的数据集,用csv文件保存的标签,如何优雅地把这个数据集划分成训练集和验证集呢?
我用一个5行的DataFrame举个例子:
哦对了上次有同学说我图有点大,这次我给它搞小点。
如图data1是一个大小为5的数据集,我想把它分成3条训练集和2条验证集。
使用DataFrame.sample
函数:
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
n是选取的条数,frac是选取的比例,replace是可不可以重复选,weights是权重,random_state是随机种子,axis为0是选取行,为1是选取列。
先选训练集:
再选验证集:
下面解释一下这行代码。
train_data.index
返回的是train_data的index:
data1.index.isin(train_data.index)
检查这些index在data1里有没有:
加~取反:
然后就可以把它们选出来啦:
再保存一下:
train_data.to_csv("train_data.csv",index=False)
test_data.to_csv("test_data.csv",index=False)