Панды, разделяющие расстояние по timedelta - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю в фрейме данных в Pandas, и мне нужно получить скорость идентификатора, разделив вычисленное расстояние на разницу во времени для каждой точки в каждом идентификаторе.

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

Вот df:

 identifier  name     num_pts   time_diff                distance
0 AL011851  UNNAMED   5        00:00:00                  NaN
1 AL011851  UNNAMED   5        06:00:00                 65.927879
2 AL011851  UNNAMED   5        06:00:00                 67.758830
3 AL011851  UNNAMED   5        06:00:00                 58.817671
4 AL011851  UNNAMED   5        -1 days +06:00:00        56.385678
5 AL021851  UNNAMED   1        00:00:00                 NaN
6 AL031851  UNNAMED   1        00:00:00                 NaN

Я пытаюсь поместить скорость в новый столбец в кадре данных, разделив расстояние на разницу во времени

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете получить общее количество секунд для столбца timedelta, преобразовать в часы и разделить:

time = pd.to_timedelta(df.time_diff, errors='coerce').dt.total_seconds() / 3600
# If already timedelta, use
# time = df.time_diff.dt.total_seconds() / 3600
df['distance'] / time

0          NaN
1    10.987980
2    11.293138
3     9.802945
4    -3.132538
5          NaN
6          NaN
dtype: float64
...