首页 > 解决方案 > 如何在 Python 中使用 k-fold-stratified 创建实际的数据帧

问题描述

在我从 sklearn Stratifiednfold 返回的索引中,如何从每个折叠中创建一个相应的数据框?

skf = StratifiedKFold(n_splits=10)
skf.get_n_splits(X, y)

for train_index, test_index in skf.split(X, y):
print("TRAIN:", train_index, "TEST:", test_index) 

打印出带有索引的列表。如何将这些映射回我的原始数据框?

我需要它们,因为我想在运行我的 texclassification 模型之前将我的增强数据添加到训练数据中。

标签: python-3.xpandasmachine-learningscikit-learntext-classification

解决方案


您可以使用您拥有的索引列表过滤原始数据框,如下所示:

df = pd.DataFrame({'foo': ['a', 'b', 'c', 'd', 'e']})
indices = [0, 2, 4]
df = df[df.index.isin(indices)]

输出:

  foo
0   a
2   c
4   e

推荐阅读