关于#keyerro#的问题,如何解决?


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的索引中不存在。


要解决这个问题,您可以采取以下步骤:

  1. 检查DataFrame的列名:使用train_valid_set.columns查看DataFrame的列名。确保列名与您在numeric_colscategory_cols列表中指定的列名完全匹配,并且没有任何拼写错误或额外的空格。

  2. 检查DataFrame的索引:如果您的DataFrame具有自定义索引,而不是默认的数字索引,那么请确保指定的列名在索引中存在。您可以使用train_valid_set.index查看DataFrame的索引。

  3. 确保DataFrame包含所需的列:检查train_valid_set DataFrame是否包含您指定的所有列。如果列名不在DataFrame中,那么可能是数据加载或预处理的问题。

确保以上步骤中的列名和索引匹配,并且列名在DataFrame中存在,就能够解决 "KeyError" 错误。