[英]Pandas stratified sampling based on multiple columns
我有一个如下所示的 Pandas 数据框:
| Cliid | Segment | Insert |
|-------|---------|--------|
| 001 | A | 0 |
| 002 | A | 0 |
| 003 | C | 0 |
| 004 | B | 1 |
| 005 | A | 0 |
| 006 | B | 0 |
我想将它分成 2 组,使每个组在 [Segment, Insert] 中具有相同的每个变量的组成。 例如,每个组将有 1/2 的观测值属于段 A,1/6 的插入 = 1,依此类推。
我已经检查了这个答案,但它只对一个变量进行分层,它不会对多个变量起作用。
R 有这个功能可以做到这一点,但使用 R 不是一种选择。
顺便说一下,我使用的是 Python 3。
您可以使用sklearn的train_test_split功能包括参数stratify
可用于确定要分层列。
例如:
from sklearn.model_selection import train_test_split
df_train, df_test = train_test_split(df1, test_size=0.2, stratify=df[["Segment", "Insert"]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.