我有一个熊猫数据框my_df
包含以下列:
id lat1 lon1 lat2 lon2
1 45 0 41 3
2 40 1 42 4
3 42 2 37 1
基本上,我想做以下事情:
import haversine
haversine.haversine((45, 0), (41, 3)) # just to show syntax of haversine()
> 507.20410687342115
# what I'd like to do
my_df["dist"] = haversine.haversine((my_df["lat1"], my_df["lon1"]),(my_df["lat2"], my_df["lon2"]))
类型错误:无法将系列转换为
Using this https://stackoverflow.com/a/44350260/4348534,我尝试了以下方法:
my_df['dist'] = haversine.haversine(
list(zip(*[my_df[['lat1','lon1']][c].values.tolist() for c in my_df[['lat1','lon1']]]))
,
list(zip(*[my_df[['lat2','lon2']][c].values.tolist() for c in my_df[['lat2','lon2']]]))
)
文件“blabla\lib\site-packages\haversine__init__.py”,第 20 行,在 hasrsine 中
纬度1, 经度1 = 点1
ValueError:需要解压的值太多(预期为 2)
知道我做错了什么/如何实现我想要的吗?