按组随机拆分DataFrame?

时间:2018-03-05 17:20:51

标签: python-3.x pandas numpy random scikit-learn

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

是否有一种优雅的方式可以将这些数据随机分成培训和测试数据,其方式是培训和测试集不共享group_id?

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

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

谢谢

1 个答案:

答案 0 :(得分:0)

哦,有一种简单的方法!

  • 创建唯一group_ids的列表/数组
  • 为此列表创建随机掩码
  • 并使用掩码拆分文件