You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在train_test_split后删除测试集中MFD>1的指定行

解决数据集拆分后删除特定行的索引问题

嘿,我懂你这头疼的问题——用train_test_split拆分完数据集后,测试集的索引全被打乱了,再用原来的索引去删行肯定会触发越界错误。咱们直接基于拆分后的测试集本身来定位要删除的行就行。

假设你的X_test中包含MFD这个特征列(如果实际列名不同,替换成真实名称即可),你可以这样获取符合MFD>1条件的新索引:

# 先生成布尔掩码,标记所有MFD>1的行
mask = X_test['MFD'] > 1
# 提取这些行对应的索引
mfd_drop_rows = X_test[mask].index

或者更简洁的一步写法:

mfd_drop_rows = X_test[X_test['MFD'] > 1].index

拿到这些索引后,就可以同步清理X_test和y_test了:

# 删除X_test中符合条件的行
X_test_clean = X_test.drop(mfd_drop_rows)
# 同步删除y_test中对应索引的行(两者索引完全对齐)
y_test_clean = y_test.drop(mfd_drop_rows)

更高效的简化方案

其实你甚至不用单独提取索引,直接用布尔掩码的取反来保留MFD<=1的行,代码会更简洁直观:

# 直接筛选出MFD<=1的行,自动保留对应索引
X_test_clean = X_test[X_test['MFD'] <= 1]
# 利用X_test的索引同步筛选y_test,确保两者行完全对应
y_test_clean = y_test.loc[X_test_clean.index]

核心逻辑就是:拆分后的X_test和y_test共享完全一致的索引体系,所以只要在X_test里定位到目标行,用相同的索引操作y_test就能完成同步清理,完全不用依赖原数据集的旧索引。

内容的提问来源于stack exchange,提问作者Florian Notar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:19:57