【问题标题】:Pandas dividing distance by timedelta熊猫将距离除以 timedelta
【发布时间】:2019-05-12 00:03:50
【问题描述】:

我在 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

我试图通过将距离除以时间差来将速度放在数据框中的新列中

【问题讨论】:

  • 距离的单位是什么?
  • 距离单位是公里
  • 没问题,谢谢!

标签: python pandas datetime dataframe timedelta


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2019-05-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2020-06-06
    相关资源
    最近更新 更多