KeyError: “None of [Int64Index([1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,\n

import matplotlib.pyplot as plt
from sklearn.svm import LinearSVR

inputfile = '../tmp/new_reg_data_GM11.xls'  # 灰色预测后保存的路径
data = pd.read_excel(inputfile)  # 读取数据
feature = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']  # 属性所在列
data_train = data.loc[range(1994,2014)].copy()  # 取2014年前的数据建模
data_mean = data_train.mean()
data_std = data_train.std()
data_train = (data_train - data_train)/data_std  # 数据标准化
x_train = data_train[feature].as_matrix()  # 属性数据
y_train = data_train['y'].as_matrix()  # 标签数据

linearsvr = LinearSVR()  # 调用LinearSVR()函数
linearsvr.fit(x_train,y_train)
x = ((data[feature] - data_mean[feature])/data_std[feature]).as_matrix()  # 预测,并还原结果。
data[u'y_pred'] = linearsvr.predict(x) * data_std['y'] + data_mean['y']
outputfile = '../tmp/new_reg_data_GM11_revenue.xls'  # SVR预测后保存的结果
data.to_excel(outputfile)

print('真实值与预测值分别为:\n',data[['y','y_pred']])

fig = data[['y','y_pred']].plot(subplots = True, style=['b-o','r-*'])  # 画出预测结果图

plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误通常是由于尝试使用一个不存在的键来访问一个字典或者pandas DataFrame中的列引起的。具体来说,这个错误可能是由于以下原因引起的: 1. 你尝试使用一个不存在的键来访问一个字典中的值。在这种情况下,你需要检查你的键是否正确,并确保它存在于字典中。 2. 你尝试使用一个不存在的列名来访问一个pandas DataFrame中的列。在这种情况下,你需要检查你的列名是否正确,并确保它存在于DataFrame中。 3. 你尝试使用一个不存在的索引来访问一个pandas DataFrame中的行。在这种情况下,你需要检查你的索引是否正确,并确保它存在于DataFrame中。 总之,这个错误通常是由于访问一个不存在的键或者索引引起的,你需要检查你的代码并确保你的键和索引是正确的。 ### 回答2: KeyErrorPython中的一个错误,表示在字典或DataFrame中查找了一个不存在的键。这个错误可以在很多情况下发生,但如果错误提示是“none of [Int64Index”,则表示在尝试使用整数索引对DataFrame进行索引时出错。 在Pandas中,DataFrame默认使用整数索引作为行索引,这意味着第一行被标记为0,第二行被标记为1,以此类推。如果使用这种索引方式,那么使用数字进行行索引是非常常见的。 然而,在有些情况下,使用数字索引可能会引起问题。例如,如果删除了一些行,那么DataFrame中的行索引就不再是连续的数字序列,而是由现有行的索引组成的整数序列。这意味着如果使用数字进行行索引,那么如果尝试使用已删除的行的索引,就会引发KeyError错误。 为了避免这种错误,一种好的方式是使用.loc方法进行索引。这种方法可以使用行标签进行索引,而不是使用数字。这个方法可以通过给.loc方法传递一个标签列表来实现: ``` df.loc[[label1, label2, label3]] ``` 这样就可以使用列标签标识行,而不必使用数字标识。这种方法可以避免KeyError错误,因为它不受数字索引的影响。 还有一种替代方法是使用iloc方法进行索引,这个方法也可以用来避免KeyError错误。这种方法使用整数索引进行查找。但是,如果使用这个方法,需要注意的是,如果有行被删除,整数索引会改变,这可能会导致新的行被错误地标记为旧的索引值。 因此,在使用.iloc方法时,最好使用reindex方法来重建索引。这个方法可以将索引重建为连续的整数序列,从而避免KeyError错误: ``` df = df.reindex(range(len(df))) ``` 这是一种避免KeyError错误的可靠方法。如果您遇到这种错误,请检查您的代码是否使用了整数索引,并使用这些方法来避免这种错误。 ### 回答3: KeyErrorPython中的一个错误类型,表示通过所提供的键名在一个字典或对象中找不到对应的值。在这里,keyerror: "none of [int64index]"的错误提示意味着在一个int64index对象中无法找到对应的键名。 要解决这个问题,我们需要了解一些关于int64index的背景知识。int64index是一种pandas库中的数据结构,用于表示索引值为整数的一维数组。它通常用于在pandas数据帧中指定行索引。 通常,当使用int64index对象时,会出现三种可能的错误情况:重复索引、丢失索引和类型错误。在这种情况下,我们要寻找能够解决KeyError的方式。 首先,我们可以检查代码中索引是否正确。在pandas DataFrame中,索引通常是将行标签映射到数据帧行的整数索引器。如果索引器的数据类型与int64index不匹配,就会出现KeyError。 另一个可能的问题是重复索引,这意味着多个行具有相同的索引标签。在这种情况下,我们可以使用pandas库的.drop_duplicates()方法删除重复的行索引。 最后,我们可以通过使用.reindex()或者.reset_index()方法重置索引,这样可以解决许多常见的KeyError问题。但是,在进行这些操作之前,我们需要确认是否存在丢失索引的问题,以避免数据缺失。 总的来说,要解决KeyError问题,我们需要了解int64index的特性,并检查索引是否正确、是否存在重复索引或是数据缺失等问题。正确应对这些问题可以让我们使用int64index对象时更加顺畅有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值