У меня есть DataFrame ФР, как следующее:панд - применять временные и пространственные функции для GroupBy
User_ID;Latitude;Longitude;Datetime
222583401;41.4020375;2.1478710;2014-07-06 20:49:20
287280509;41.3671346;2.0793115;2013-01-30 09:25:47
329757763;41.5453577;2.1175164;2012-09-25 08:40:59
189757330;41.5844998;2.5621569;2013-10-01 11:55:20
624921653;41.5931846;2.3030671;2013-07-09 20:12:20
414673119;41.5550136;2.0965829;2014-02-24 20:15:30
414673119;41.5550136;2.0975829;2014-02-24 20:16:30
414673119;41.5550136;2.0985829;2014-02-24 20:17:30
Он содержит информацию о пространстве пользователей (широта и долгота) и время (DateTime) местоположение. Все пользователи показывают единую пространственно-временную позицию, но последний 414673119, который прослеживается тремя пробами во времени и месте. Я хотел бы оценить такой параметр, как «скорость» пользователей. Я хотел бы использовать функции pandas, применяемые в столбцах Latitude/Longitude, связанные с самым коротким расстоянием между двумя точками с евклидовым расстоянием. Вызов LAT1 и LAT2 различных положения в пространстве во время первого этапа движения (то же самое для Lon и DateTime), я могу оценить:
distance_1_2 = math.sqrt((Lat2-Lat1)**2 + (Lon2-Lon1)**2)
time_1_2 = Datetime2 - Datetime1
, а затем:
speed_1_2 = distance_1_2/time_1_2
До сих пор я сортирую и сгруппированы в DataFrame по user_id для обнаружения нескольких (и последовательных) движений:
# Track User Movements in Space and Time - Sort Information
track = df.sort(['User_ID','Datetime'])
# MultiIndex --> Index on 'User_ID'
grouped = track.groupby(['User_ID'])
Теперь проблема доступа к информации о группе о пространстве и времени , и фильтровать пользователей с параметром speed
выше или ниже определенного значения. Большое спасибо за вашу любезную помощь.
Ого, здорово! Спасибо большое! –
Итак, в этом случае, в каком блоке измеряется скорость? Время во втором, но расстояние? Что делать, если я хотел бы реализовать большое расстояние между двумя точками? –