【发布时间】:2020-12-28 12:18:54
【问题描述】:
我已根据一些分析确定了我想选择作为我的模型的预测变量的特定列。我已经捕获了这些列号并将其存储在一个列表中。我大约有 80 列,并且想要循环并删除不在此特定列表中的列。 X_train 是我要在其中执行此操作的列。这是我的代码:
cols_selected = [24, 4, 7, 50, 2, 60, 46, 53, 48, 61]
cols_drop = []
for x in range(len(X_train.columns)):
if x in cols_selected:
pass
else:
X_train.drop([x])
运行此程序时,我在突出显示代码时遇到以下错误:X_train.drop([x]):
KeyError: '[3] not found in axis'
我确信这是我所缺少的非常简单的东西。我尝试将 inplace=True 或 axis=1 语句与此一起包含在内,所有这些语句都有相同的错误消息(而 [] 内的值随这些错误代码而变化)。
任何帮助都会很棒!
编辑:这里是让它工作的补充:
cols_selected = [24, 4, 7, 50, 2, 60, 46, 53, 48, 61]
cols_drop = []
for x in range(len(X_train.columns)):
if x in cols_selected:
pass
else:
cols_drop.append(x)
X_train = X_train.drop(X_train.columns[[cols_drop]], axis=1)
【问题讨论】:
-
你说的数据集没有可见性,你能告诉我们DataFrame结构吗?