我正在尝试使用曼哈顿距离手动计算k-3个最近的邻居。
我有一个称为data
的数据帧和一个名为query
的查询观察。我需要能够对sum(abs(query-data))
中的每个观察结果执行类似data
的操作。
到目前为止,我已经编写了这样的for循环:
numeric_columns = data.columns[data.dtypes == np.number]
for rows in data:
print(query[numeric_columns] - data[numeric_columns])
这将返回所有列名,其原始长度为data
的值为NaN:16倍。我对编写循环非常陌生,但我不太了解自己在这里做错了什么。我还希望能够返回距离和索引,但是我应该首先尝试使它正确进行循环。
有人可以帮我吗?
有一种方法sub
,用于减去数据帧。您可以在NaNs when subtracting dataframes pandas和此处https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sub.html了解更多因此该循环应如下所示:
for rows in data:
t = query[numeric_columns].sub(data[numeric_value], fill_value=0)
print(t)