按组随机拆分DataFrame?

问题描述 投票:1回答:1

我有一个DataFrame,其中多行共享group_id值(非常多的组)。

有没有一种优雅的方法可以将训练和测试集不共享group_id的方式随机将这些数据分成训练和测试数据?

我现在能想出的最好的流程是 - 从msk = np.random.rand()创建掩码 - 将其应用于DataFrame - 检查测试文件以查找与训练集共享group_id的行,并将这些行移动到训练集。

这显然不是优雅的,并且存在多个问题(包括测试数据最终为空的可能性)。我觉得必须有更好的方法,是吗?

谢谢

python-3.x pandas numpy random scikit-learn
1个回答
0
投票

哦,有一个简单的方法!

  • 创建唯一group_ids的列表/数组
  • 为此列表创建随机掩码
  • 并使用掩码分割文件
© www.soinside.com 2019 - 2024. All rights reserved.