对于一个dataframe,需要求每个数据样条中,彼此之间的距离差为多少。
即计算两两之差,形成距离矩阵
随机生成一个4*4的dataframe
import numpy as np
import pandas as pd
a = np.random.randint(10, 100, size=16).reshape((4,4))
b = pd.Dateframe(a)
计算每个样条之间的距离差为多少。
# 创建一个容器,存储每一行距离
mydis_ed_Means = []
# 先确定第一行的
for i in range(0, len(b)): # len(b)表示dataframe的长度
# 储存每第一个样条与各个样条之间的距离
dis_ed_Means = []
for j in range(0, len(b)):
# 判断是不是在对角线上
if i != j:
ed = np.sqrt(np.sum((b.iloc[i,:] - b.iloc[j,:]) ** 2))
dis_ed_Means.append(ed)
else:
ed_1 = 0
dis_ed_Means.insert(i, ed_1)
mydis_ed_Means.append(dis_ed_Means)