【发布时间】:2020-11-29 10:23:49
【问题描述】:
我需要按银行(clean_name)对自动取款机进行分组,并计算特定银行内每个自动取款机的距离,并找到最大欧几里得距离。
不确定如何将欧式函数应用于 groupby 并输出最大欧式距离
【问题讨论】:
-
你能展示一些你试过的源代码吗?欧几里得距离的参考点在哪里?你有什么样的数据?数据框?
-
import numpy as np from scipy import spatial atm_number=df.groupby('clean_name')['objectid'].count() def not_one_atm(s): return atm_number[s]>1 df[ 'more_than_one_atm']=df['clean_name'].map(one_atm) bank_distance=df[['clean_name','x','y']][df['more_than_one_atm']] print(bank_distance) distance_rank=bank_distance。 groupby('clean_name').apply(lambda x: spatial.distance.pdist(np.array(list(zip(xx, xy)))).max()) distance_rank.sort_values(ascending=False)[0:10 ]
-
我得到了答案,但我必须下载一个包来计算欧几里得距离。这对我来说真的没有意义。我的教授可能要求我们提供自定义 aggfunc。
标签: python-3.x pandas-groupby euclidean-distance