對於一個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)