繁体   English   中英

基于多列的熊猫分层抽样

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM