Panda の DataFrame で空間分析を行う際に問題が発生しています。現在、1000行を超えるデータフレームと、「ユーザー」、「緯度」、「経度」の列があります。
このデータセットに基づいて、100 km の範囲内にいるすべてのユーザーを合計する 4 番目の列を作成するなど、いくつかの空間分析を行いたいと考えています。
これを効率的に行う方法はありますか?
現在、2 つの 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()
ありがとうございました
アンディ