根据特定的列值从熊猫数据帧中采样

时间:2019-08-23 16:22:27

标签: python pandas

我的熊猫数据框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)

1 个答案:

答案 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]