2

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()

ありがとうございました

アンディ

4

1 に答える 1