我正在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
我试图通过将距离除以时间差来将速度放入数据框中的新列中
答案 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