第二次迭代在Pandas / Numpy中添加额外的字符

时间:2016-04-06 04:09:29

标签: python numpy pandas

我正在运行下面的代码,它在第一次迭代时运行正常,当第二次迭代启动时,它给了我一个关键错误。我注意到有一个字符串" L"第二次迭代开始时自动添加到密钥。 链接到我的代码:

Code for KNN having issues here

我正在使用的数据链接如下:

Data used for the code

不确定为什么会这样。有人请让我知道导致问题的原因。非常感谢帮助!! class A{ int id; String nameA; List<D> listOfDs; } class D{ int id; String name; }

1 个答案:

答案 0 :(得分:0)

现在,我只关注您的get_numpy_data定义,并认为它并不像您期望的那样有效。例如,行

features_train, output_train = get_numpy_data(df_housePrice_train, feature_list, 'price')

似乎修改了df_housePrice_trainoutput_train成为包含字符串"price"的np数组。

<强>更新

distances = []应该在函数compute_distances内。此函数会在每次执行时将元素附加到distances。接下来,将一些元素的索引(位置)应用于数据帧。在第一次执行时,一切正常,但后来列表增长,一些索引变大 - 超过数据框的大小。

更新2

为了完整性:KeyError: 6818L表示长整数6818(L表示此处的类型)不是df_housePrice_train中的有效密钥。

需要修改代码:

## KNN.py, line 61:
#distances = []        # <- delete this line

def compute_distances(features_instances, features_query):
    distances = []     # <-- add here
    # rest of the function body...