numeric_cols = ['duration.in.month',
'credit.amount',
'age.in.years',
'present.residence.since',
'number.of.existing.credits.at.this.bank',
'installment.rate.in.percentage.of.disposable.income',
'number.of.people.being.liable.to.provide.maintenance.for']
category_cols = ['status.of.existing.checking.account', 'credit.history',
'savings.account.and.bonds', 'present.employment.since',
'personal.status.and.sex', 'other.debtors.or.guarantors',
'property', 'other.installment.plans', 'housing', 'job',
'telephone', 'foreign.worker', 'purpose']
x_cols = numeric_cols + category_cols
X = train_valid_set[x_cols]
输入上述代码,说KeyError: "['duration.in.month', 'credit.amount', 'age.in.years', 'present.residence.since', 'number.of.existing.credits.at.this.bank', 'installment.rate.in.percentage.of.disposable.income', 'number.of.people.being.liable.to.provide.maintenance.for', 'status.of.existing.checking.account', 'credit.history', 'savings.account.and.bonds', 'present.employment.since', 'personal.status.and.sex', 'other.debtors.or.guarantors', 'other.installment.plans', 'foreign.worker'] not in index"
这个怎么解决呢
该回答引用ChatGPT-3.5,仅供参考,不保证完全正确
出现 "KeyError: ['duration.in.month', 'credit.amount', 'age.in.years', 'present.residence.since', 'number.of.existing.credits.at.this.bank', 'installment.rate.in.percentage.of.disposable.income', 'number.of.people.being.liable.to.provide.maintenance.for', 'status.of.existing.checking.account', 'credit.history', 'savings.account.and.bonds', 'present.employment.since', 'personal.status.and.sex', 'other.debtors.or.guarantors', 'other.installment.plans', 'foreign.worker'] not in index" 错误是由于您的train_valid_set
对象的索引中不包含指定的列名。
这个错误通常发生在尝试使用列名列表访问DataFrame的列时,而这些列名在DataFrame的索引中不存在。
要解决这个问题,您可以采取以下步骤:
检查DataFrame的列名:使用train_valid_set.columns
查看DataFrame的列名。确保列名与您在numeric_cols
和category_cols
列表中指定的列名完全匹配,并且没有任何拼写错误或额外的空格。
检查DataFrame的索引:如果您的DataFrame具有自定义索引,而不是默认的数字索引,那么请确保指定的列名在索引中存在。您可以使用train_valid_set.index
查看DataFrame的索引。
确保DataFrame包含所需的列:检查train_valid_set
DataFrame是否包含您指定的所有列。如果列名不在DataFrame中,那么可能是数据加载或预处理的问题。
确保以上步骤中的列名和索引匹配,并且列名在DataFrame中存在,就能够解决 "KeyError" 错误。