gpt4 book ai didi

python - 应用程序用户记录的地理位置 - 哪个位置最重要?

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:29 24 4
gpt4 key购买 nike

我正在使用一个记录所有用户地理位置的应用程序。现在重要的是,我要从每个用户在特定时间段内选择最重要的地理位置。例如;对于某个用户,我有上个月的以下位置。

    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

仅选择此列表中的一个坐标非常重要,该坐标总结了用户最有可能打开应用程序的位置。这将是我们必须集中资源的地方。
主要问题:如何确定特定时间段内每个用户的哪个地理位置最重要?

这里,我在名为 folium 的 Python 库提供的 map 上绘制了一位用户的地理位置

包含一位特定用户的地理位置的 map : enter image description here

我目前解决这个问题的最佳想法
对于每个地理位置,我在地理位置周围取 x 米的半径。我计算了该特定用户有多少其他地理位置属于此范围。在其半径内具有最多其他地理位置的地理位置被视为该特定用户最重要的地理位置。

我向你们提出的问题
我是解决此类问题的新手,我不知道我的解决方案是否是最好的选择,或者是否有更好的解决方案来解决此类问题。如果你们对此问题有任何反馈,我们将不胜感激!

最佳答案

解决方案的开始,你必须安装geopy来简化距离的计算:我假设id是一个位置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)

希望能有所帮助,对我糟糕的英语感到抱歉

关于python - 应用程序用户记录的地理位置 - 哪个位置最重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com