Python Pandas: использование долготы и широты, чтобы получить расстояние между двумя точками

Я делаю eda о преступлениях 2017 года в Северной Ирландии, сосредотачиваясь на преступности с наркотиками. Я пытаюсь связать преступления, связанные с наркотиками, с парками, и поэтому я пытаюсь раскрыть преступления, связанные с наркотиками, которые происходят вблизи парков в радиусе 0,5 км Однако, когда я запускаю камеру, это приводит к тому, что все преступления с наркотиками в информационном блоке находятся рядом с парками, что неправильно. Надеюсь, вы можете помочь!

Фрейм данных парков называется парками и имеет столбцы: НАИМЕНОВАНИЕ АДРЕС ОТКРЫТОГО ДОЛГОЛЕТИЯ LATITUDE

Фрейм данных о наркотиках называется drug2017 и имеет столбцы: Месяц Год Reported_by Falls_within Долгота Широта Местоположение Crime_type

Код:

NearParks2017 = 0.05

drugs2017['check'] = None
drugs2017['NAME'] = None
drugs2017['Distance'] = 0.0

for index, row in drugs2017.iterrows():
    coords123 = (row['Longitude'], row['Latitude'])
    for pindex, prow in parks.iterrows():
        pcoords123 = (prow['LONGITUDE'], prow['LATITUDE'])
        PNAME123 = prow['NAME']

        d123 = distance.vincenty(coords123, pcoords123)

        if (d123.miles <= NearParks2017):
            drugs2017.set_value(index,'check',"checked")
            drugs2017.set_value(index,'NAME',PNAME123)
            drugs2017.set_value(index,'Distance',d123.miles)

        break

        drugs2017.to_csv('ParksDrugs.csv',index=False)

1 ответ

С расстоянием по умолчанию 0.0 вы выбираете неподходящее значение по умолчанию для расстояния для вашего теста на близость. Таким образом, все преступления будут иметь дистанцию ​​0.0 или не более NearParks2017. Я предлагаю использовать s th как numpy.Nan вместо 0.0

Другие вопросы по тегам