我的熊猫数据框df包含search_id 我想将df随机抽样到训练和测试集中,其中训练和测试集都具有不同的search_id。 Search_id不是唯一的,并且每个search_id都有多个条目,但是我希望训练和测试数据应具有不同的search_id。 我可以找到的是常规抽样,但没有找到如何使用search_id进行拆分的方法:
train=df.sample(frac=0.8,random_state=200)
test=df.drop(train.index)
答案 0 :(得分:0)
如果您愿意这样做,我们可以使用sklearn
from sklearn.model_selection import (TimeSeriesSplit, KFold, ShuffleSplit,
StratifiedKFold, GroupShuffleSplit,
GroupKFold, StratifiedShuffleSplit)
GS = GroupShuffleSplit(n_splits=1, test_size=0.3)
tid,trid=next(GS.split(X=df, y=df['Target'], groups=df['Group_ID']))
train , test = df.iloc[tid] , df.iloc[trid]