我正在尝试使用 apply 函数向数据框添加新列。我需要计算第 0 行和所有其他行中 X 和 Y 坐标之间的距离,我创建了以下逻辑:
import pandas as pd
import numpy as np
data = {'X':[0,0,0,1,1,5,6,7,8],'Y':[0,1,4,2,6,5,6,4,8],'Value':[6,7,4,5,6,5,6,4,8]}
df = pd.DataFrame(data)
def countDistance(lat1, lon1, lat2, lon2):
print(lat1, lon1, lat2, lon2)
#use basic knowledge about triangles - values are in meters
distance = np.sqrt(np.power(lat1-lat2,2)+np.power(lon1-lon2,2))
return distance
def recModif(df):
x = df.loc[0,'X']
y = df.loc[0,'Y']
df['dist'] = df.apply(lambda n: countDistance(x,y,df['X'],df['Y']), axis=1)
#more code will come here
recModif(df)
但这总是返回错误:ValueError: Wrong number of items passed 9, placement implies
我认为由于 x 和 y 是标量,使用np.repeat可能有帮助,但没有帮助,错误仍然是相同的。我看到类似的帖子,例如this,但是乘法很简单,我怎样才能实现我需要的减法呢?
慕无忌1623718
眼眸繁星
德玛西亚99
相关分类