我在熊猫中有以下dataframe
:
import pandas as pd
df = pd.DataFrame({
"CityId": {
"0": 0,
"1": 1,
"2": 2,
"3": 3,
"4": 4
},
"X": {
"0": 316.83673906150904,
"1": 4377.40597216624,
"2": 3454.15819771172,
"3": 4688.099297634771,
"4": 1010.6969517482901
},
"elevation_meters": {
"0": 1,
"1": 2,
"2": 3,
"3": 4,
"4": 5
},
"Y": {
"0": 2202.34070733524,
"1": 336.602082171235,
"2": 2820.0530112481106,
"3": 2935.89805580997,
"4": 3236.75098902635
}
})
我试图创建一个距离矩阵,它表示在这些CityIds
之间移动的成本。使用pdist
和squareform
来自scipy.spatial.distance
的squareform
我可以执行以下操作:
from scipy.spatial.distance import pdist, squareform
df_m = pd.DataFrame(
squareform(
pdist(
df[['CityId', 'X', 'Y']].iloc[:, 1:],
metric='euclidean')
),
index=df.CityId.unique(),
columns= df.CityId.unique()
)
这给出了所有CityIds
之间的距离矩阵,使用从pdist
计算的成对距离。你知道吗
我想把elevation_meters
合并到这个距离矩阵中。什么是有效的方法?你知道吗
你可以试试
scipy.spatial.distance_matrix
:输出:
相关问题 更多 >
编程相关推荐