【问题标题】:calculate distance between latitude longitude columns for pandas data frame计算熊猫数据框的纬度经度列之间的距离
【发布时间】:2022-11-03 23:25:16
【问题描述】:

我正在尝试应用此代码:

import h3

coords_1 = (52.2296756, 21.0122287)
coords_2 = (52.406374, 16.9251681)
distance = h3.point_dist(coords_1, coords_2, unit='km')
distance

到熊猫数据框。这是我不工作的尝试。

data = {'lat1':[52.2296756],
        'long1':[21.0122287],
        'lat2':[52.406374],
        'long2':[16.9251681],      
}
df = pd.DataFrame(data)
df

df['distance'] = = h3.point_dist((df['lat1'], df['long1']), (df['lat2'], df['long2']), unit='km')

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 不 - 我用谷歌搜索了这个 - 我不是在连续的行之后!
  • emm 看看我的数据框示例?!
  • @cs0815 这些 cmets 怎么不友好?我们正在努力提供帮助。但是,您的问题没有包含足够的详细信息。
  • @cs0815 只是重复单词并不能解释你的意思。您的问题没有包含足够的细节来理解实际问题是什么。请阅读minimal reproducible exampleHow to Ask 以获取有关如何提出吸引您正在寻找的答案的问题的提示。我什至包括了一些具体的问题供你回答。仅您收到的错误消息将大大有助于了解实际问题是什么。

标签: python h3


【解决方案1】:

假设您有不止一行要计算可以使用的距离,请按如下方式应用:

df['Dist'] = df.apply(lambda row: h3.point_dist((row['lat1'], row['long1']), (row['lat2'], row['long2'])), axis=1)

这将为您的数据框添加一列,类似于以下内容:

      lat1        long1      lat2       long2        Dist
0   52.229676   21.012229   52.406374   16.925168   2.796556
1   57.229676   30.001176   48.421365   17.256314   6.565542 

请注意,我的距离计算可能与您的不一致,因为我使用虚拟函数进行 h3.point_dist 计算

【讨论】:

  • 不,我没有一行。这比其他答案更有效吗?
  • 您必须测试性能才能回答该问题。
【解决方案2】:

它正在工作,您只需删除第二个“=”

data = {'lat1':[52.2296756],
        'long1':[21.0122287],
        'lat2':[52.406374],
        'long2':[16.9251681],      
}
df = pd.DataFrame(data)
df

df['distance'] =  h3.point_dist((df['lat1'], df['long1']), (df['lat2'], df['long2']), unit='km')

【讨论】:

  • 请在此处以文本形式发布代码,而不是屏幕截图。
  • 谢谢 - 抱歉,目前从 R 过渡到 Python ( - :
  • 不用担心,我们都会经历那个^^祝你好运
  • 这是影响和比较之间的简单错误,如果您使用“==”它比较值,而简单“=”用于影响..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2019-08-23
  • 1970-01-01
  • 2012-10-13
  • 2012-01-26
  • 1970-01-01
相关资源
最近更新 更多