首页 > 解决方案 > 根据组值拆分训练中的数据集并进行测试?

问题描述

如果我有以下数据集:(如果我用“ group_name ”按数据分组,数据将如下所示:)

在此处输入图像描述

我想根据 **group_name**特征将数据集拆分为训练集和测试集。例如,如果我想要 80:20 的比例,那么训练集和测试集将如下所示(即在 group-by 函数中):

动车组:

在此处输入图像描述

测试集:

在此处输入图像描述

因此,在上述示例中考虑了 80:20 的比例。此外,上面显示的示例是 groupby 函数应用于实际数据集的结果。

标签: pythonpandas

解决方案


接受培训

training = df.groupby('group_name').apply(lambda x: x.sample(frac=0.8))

然后使用其他索引进行测试

testing = df.loc[set(df.index) - set(training.index.get_level_values(1))]


推荐阅读