Пользователи приложения вошли геолокации - какое местоположение является наиболее важным? - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю с приложением, которое регистрирует геолокацию всех пользователей.Теперь важно, чтобы я выбрал наиболее важную геолокацию от каждого пользователя на определенный период времени.Например;для определенного пользователя у меня есть следующие местоположения в прошлом месяце.

    long    lat
2236    51.471899   5.471339
3432    51.461456   5.486195
3433    51.454544   5.487742
3434    51.471934   5.471232
3567    51.441648   5.464492
3568    51.398149   5.478717
3569    51.467318   5.470221
3570    51.467257   5.478014
3571    51.468200   5.477699
3572    51.443477   5.472390

Важно выбрать только одну координату этого списка, которая суммирует, где пользователь, скорее всего, откроет приложение.Это будет то место, где мы должны сосредоточить свои ресурсы.
Основной вопрос : Как определить, какая геолокация каждого пользователя в определенный период времени наиболее важна?

Здесь я нанес геолокации однойпользователь на карте, предоставленной библиотекой Python с именем folium

Карта с геолокациями от одного конкретного пользователя: enter image description here

Myтекущая лучшая идея для решения этой проблемы
Для каждого геолокации я беру радиус x метров вокруг геолокации.Я считаю, сколько других геолокаций этого конкретного пользователя попадают в этот redius.Геолокация с большинством других геолокаций в пределах его радиуса считается наиболее важной геолокацией этого конкретного пользователя.

Мой вопрос к вам, ребята
Я новичок в решении подобных задач.проблемы, и я понятия не имею, является ли мое решение лучшим выбором или есть лучшие решения для решения такой проблемы.Любые отзывы от вас, ребята, по этой проблеме будут высоко оценены!

1 Ответ

0 голосов
/ 26 февраля 2019

В начале решения вам нужно установить geopy, чтобы упростить вычисление расстояния: я предполагаю, что id - это идентификатор местоположения, и я вычисляю все расстояния (км) между всеми местоположениями. Id

from geopy.distance import lonlat,distance

df= pd.DataFrame({'id': [2236, 3432, 3433, 3434, 3567, 3568, 3569, 3570, 3571, 3572],
                  'lon': [51.471899, 51.461456, 51.454544, 51.471934, 51.441648, 51.398149, 51.467318, 51.467257, 51.4682, 51.443477],
                  'lat': [5.471339, 5.486195, 5.487742, 5.471232, 5.464492, 5.478717, 5.470221, 5.478014, 5.477699, 5.47239]})

df_all = pd.merge(df.assign(key=0), df.assign(key=0),suffixes=('', '_loc') , on='key').drop('key', axis=1)

df_all['KM'] = df_all.apply(
    (lambda row:distance(lonlat(row['lon'], row['lat']),lonlat(row['lon_loc'], row['lat_loc'])).km),    axis=1)


print(df_all)

:

      id        lon       lat  id_loc    lon_loc   lat_loc        KM
0   2236  51.471899  5.471339    2236  51.471899  5.471339  0.000000
1   2236  51.471899  5.471339    3432  51.461456  5.486195  2.009507
2   2236  51.471899  5.471339    3433  51.454544  5.487742  2.643655
3   2236  51.471899  5.471339    3434  51.471934  5.471232  0.012452
:
10  3432  51.461456  5.486195    2236  51.471899  5.471339  2.009507
11  3432  51.461456  5.486195    3432  51.461456  5.486195  0.000000
12  3432  51.461456  5.486195    3433  51.454544  5.487742  0.784811
:
70  3570  51.467257  5.478014    2236  51.471899  5.471339  0.899710
71  3570  51.467257  5.478014    3432  51.461456  5.486195  1.109818
:
98  3572  51.443477  5.472390    3571  51.468200  5.477699  2.801878
99  3572  51.443477  5.472390    3572  51.443477  5.472390  0.000000

(100 rows)

надеюсь, что это может помочь и извините за мой плохой английский

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...