如何计算数据框中行之间的距离并创建矩阵

耐莉·路易斯

我有一个这样的数据框

import pandas as pd
sample = pd.DataFrame({'Col1': ['1','0','1','0'],'Col2':['0','0','1','1'],'Col3':['0','0','1','0'],'Class':['A','B','A','B']},index=['Item1','Item2','Item3','Item4'])
In [32]: print(sample)
Out [32]:
      Col1 Col2 Col3 Class
Item1    1    0    0    A
Item2    0    0    0    B
Item3    1    1    1    A
Item4    0    1    0    B

我想计算differents类的行之间的行距离。我的意思是,首先我要计算classA行之间的距离

       Item1   Item3
Item1  0       0.67
Item3 0.67     0

其次,B类行之间的距离

       Item2   Item4
Item2  0       1
Item4  1       0

最后是不同阶级之间的距离。

       Item2   Item4
Item1  1       1
Item3  1       0.67

我尝试用DistanceMetric一对一地计算距离

from sklearn.neighbors import DistanceMetric
dist = DistanceMetric.get_metric('jacquard')

但是我不知道我是否可以对大型数据框中的不同行进行迭代,并创建具有距离的3个不同矩阵

莫希特·莫特瓦尼(Mohit Motwani)

要查找A类和B类内的距离,可以使用DataFrame.groupby,(使用的距离为euclidean):

def find_distance(group):
    return pd.DataFrame(dist.pairwise(group.values))

df.groupby('Class').apply(find_distance)

            0           1
Class           
A      0    0.000000    1.414214
       1    1.414214    0.000000
B      0    0.000000    1.000000
       1    1.000000    0.000000

如果只有两个类,则可以将两个类分为两个数据帧,然后计算差值:

dist_cols = ['Col1', 'Col2','Col3']
df_a = df[df['Class']=='A']
df_b = df[df['Class']=='B']

distances = dist.pairwise(df_a[dist_cols].values, df_b[dist_cols].values)
distances
> array([[1.        , 1.41421356],
       [1.73205081, 1.41421356]])

pd.DataFrame(distances, columns = df_b.index, index = df_a.index)

          Item2       Item4
Item1   1.000000    1.414214
Item3   1.732051    1.414214

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算数据框中的点之间的最小距离

来自分类Dev

计算数据框中行的比例

来自分类Dev

熊猫数据框中行的距离矩阵

来自分类Dev

如何计算数据框中两个连续点之间的距离和角度?

来自分类Dev

如何计算数据框中两个连续点之间的距离和角度?

来自分类Dev

如何计算数据框的协方差矩阵

来自分类Dev

计算两个矩阵中行的每个组合之间的距离

来自分类Dev

如何计算数据框分组依据中行的唯一组合?

来自分类Dev

计算熊猫数据框中行之间的差异

来自分类Dev

计算熊猫数据框中行之间的差异

来自分类Dev

计算数据框所有行之间的成对欧几里得距离

来自分类Dev

计算数据框中两个纬度与经度之间的距离

来自分类Dev

计算数组之间的距离

来自分类Dev

如何计算数组中相同值之间的最大距离

来自分类Dev

计算数据帧中行的长度

来自分类Dev

如何计算数据框的rowMeans?

来自分类Dev

如何使用计算数据创建历史数据框?

来自分类Dev

如何计算数据帧的所有行与 r 中的最后一行之间的欧几里德距离

来自分类Dev

创建邻接矩阵计算许多城市之间的距离

来自分类Dev

计算数据框中记录之间的增量时间

来自分类Dev

计算数据框中列之间的组合

来自分类Dev

在Android中行走时如何计算距离?

来自分类Dev

计算数据框中的元素并创建新的列

来自分类Dev

计算数据框中的元素并创建新的列

来自分类Dev

如何计算数据

来自分类Dev

计算宽数据框中每对坐标之间的距离

来自分类Dev

计算不同数据框中坐标之间的距离

来自分类Dev

python数据框中站点之间的距离计算

来自分类常见问题

如何计算数据框中的此类差异?

Related 相关文章

热门标签

归档