Python/如何在/train/test/split之后使用索引删除测试数据中的特定行

Python/如何在/train/test/split之后使用索引删除测试数据中的特定行,python,scikit-learn,delete-row,indices,train-test-split,Python,Scikit Learn,Delete Row,Indices,Train Test Split,我想在X_测试和y_测试中删除MFD较大的每一行。问题是,我总是从Train/Test/Split中获得随机混合指数。如果我尝试删除它,会收到以下错误消息: 索引器:索引3779超出大小为3488的轴1的界限 我不能使用旧的索引删除它,但我如何才能获得MFD>1的新索引 X_train, X_test, y_train, y_test = train_test_split(X, y, test_

我想在X_测试和y_测试中删除MFD较大的每一行。问题是,我总是从Train/Test/Split中获得随机混合指数。如果我尝试删除它,会收到以下错误消息:

索引器:索引3779超出大小为3488的轴1的界限

我不能使用旧的索引删除它,但我如何才能获得MFD>1的新索引

  X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                                test_size=test_size, 
                                                random_state=random_state, 
                                                stratify=y)



mfd_drop_rows = []
i_nr = 0
for i in X_test.MFD:
   if (i > 1): 
      mfd_drop_rows.append(X_test.index[i_nr])
   i_nr += 1


X_test_new = X_test.drop(X_test.index[mfd_drop_rows]) 
y_test_new = Y_test.drop(Y_test.index[mfd_drop_rows]) 

谢谢你的帮助(

我很快就解决了,我只是用我的I\n r迭代,得到了新的索引

感谢所有读过它的人

mfd_drop_rows = []
i_nr = 0
for i in X_test.MFD:
 if (i > 1): 
    mfd_drop_rows.append(i_nr)
 i_nr += 1


 X_test_new = X_test.drop(X_test.index[mfd_drop_rows]) 
 y_test_new = Y_test.drop(Y_test.index[mfd_drop_rows]) 

不确定MFD是什么,但假设
X_test.MFD
为您提供了一个数字数组,您可以使用掩码删除行。下面是如何使用掩码的简单示例:

x = [[1,2,3,4,5],[6,7,8,9,10]]
mfd = [0.6, 1.3]
mask = x > 1
x_new = x[mask,:]
这将使:

x = [1,2,3,4,5
     6,7,8,9,10]
mask = [False, True]
x_new = [6,7,8,9,10]