【发布时间】:2013-04-29 11:03:20
【问题描述】:
我在使用 Panda 的 DataFrame 进行空间分析时遇到问题。现在我有一个超过 1000 行的 DataFrame 和列“用户”、“纬度”、“经度”。
基于此数据集,我想做一些空间分析,例如创建第四列,汇总 100 公里范围内的所有用户。
有什么方法可以有效地做到这一点?
现在我使用两个 for 循环和 geopy 以下列方式计算距离:
df_geo['Neighbors'] = 0
def getNeighbors():
for i in df_geo.index:
p1 = (df_geo.ix[i]['latitude'], df_geo.ix[i]['longitude'])
count = 0
for i2 in df_geo.index:
p2 = Point (df_geo.ix[i2]['latitude'], df_geo.ix[i2]['longitude'])
if geopy.distance.distance(p1, p2).km < 100 & i != i2:
count += 1
df_geo.Neighbors[i] = count
getNeighbors()
谢谢
安迪
【问题讨论】: