熊猫将距离除以timedelta

时间:2018-12-11 02:51:00

标签: python pandas datetime dataframe timedelta

我正在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 :(得分:1)

您可以获取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