繁体   English   中英

如何使用熊猫数据框计算点之间的距离?

[英]How do I compute distance between points using pandas dataframes?

我使用 python 3,我想使用距离公式来绘制 x、y、z 分量相对于我的名为 JCFI 的文件的差异。 我与之比较的另一个文件称为 CALV。 我使用 Pandas 将它们作为数据帧导入,然后将它们拆分,使它们具有相同的长度并且每个文件中的日期匹配。

这是我正在尝试的。

#matching dates between JCFI and CALV
date = JCFIdf.iloc[:1694,:1]
xcomp = JCFIdf.iloc[:1694,1:2]
ycomp = JCFIdf.iloc[:1694,2:3]
zcomp = JCFIdf.iloc[:1694,3:4] 
xcomp2 = CALVdf.iloc[201:1520,1:2]
ycomp2 = CALVdf.iloc[201:1520,2:3]
zcomp2 = CALVdf.iloc[201:1520,3:4]
diffx = (xcomp2 - xcomp)
diffy = (ycomp2 - ycomp)
diffz = (zcomp2 - zcomp)

#compute distance
distance = sqrt((diffx)**2 + (diffy)**2 + (diffz)**2) 
print(distance)

我得到的错误是“TypeError: must be real number, not DataFrame”

所以我想知道我是否必须以某种方式从数据帧中提取所有值才能放入距离公式中,或者熊猫中是否有函数以便我可以完成这项工作?

这是使用 numpy 的矢量化解决方案:

import pandas as pd
import numpy as np
dist = np.sqrt((df.xcomp - df.xcomp2) ** 2 +
               (df.ycomp - df.ycomp2) ** 2 +
               (df.zcomp - df.zcomp2) ** 2)

#if you want to put the result in df
df['dist'] = pd.Series(dist)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM