在 DataFrame 中,每一行都是一个向量。如何计算每个向量的长度?
使用以下代码可以实现类似的行为:
import pandas as pd
import numpy as np
from scipy.spatial.distance import cdist
X = pd.DataFrame(...)
Zero = pd.DataFrame(0, index=np.arange(X.shape[0]), columns=X.columns)
L = cdist(X, Zero)
但我认为这可能更容易。该示例生成一个与 形状相同的空 DataFrame X
,并计算两个 DataFrame 之间的欧几里德度量。
更新。示例初始数据集:
A B C
2 3 4
2 1 2
5 4 2
结果示例:
sqrt(2^2+3^2+4^2)
sqrt(2^2+1^2+2^2)
sqrt(5^2+4^2+2^2)
使用sklearn.metrics.pairwise_distances - 不像scipy.spatial.distance方法,这个函数不会做不必要的(在你的情况下)计算
源数据框的:
解决方案:
作为新专栏