我试图用曼哈顿距离手工计算k-3近邻
我有一个名为data
的数据帧和一个名为query
的查询观察。我需要能够为data
中的每个观察值做类似的sum(abs(query-data))
到目前为止,我已经编写了这样的for循环:
numeric_columns = data.columns[data.dtypes == np.number]
for rows in data:
print(query[numeric_columns] - data[numeric_columns])
这将返回原始长度为data
:16的所有列名称,其值为NaN,超过16倍。
我对为循环编写代码还很陌生,我真的不明白我在这里做错了什么。我也希望能够返回距离和索引,但我想我应该首先尝试让for循环正确
有人能帮我吗
有一种方法
sub
用于减去数据帧。您可以在这里NaNs when subtracting dataframes pandas和这里https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sub.html了解更多信息。 环路是怎么回事。您只希望减去数值列,因此需要进行if
检查。 然后循环应该如下所示:对于这样的循环,您不需要这个部分
numeric_columns = data.columns[data.dtypes == np.number]
相关问题 更多 >
编程相关推荐