【问题标题】:Difference between datetime object returns only daysdatetime 对象之间的差异仅返回天数
【发布时间】:2020-09-27 13:41:24
【问题描述】:

我正在尝试计算两个日期时间对象之间的差异,但它只返回天之间的差异,而不是小时/分钟/秒之间的差异。

这是我的代码:

import pandas as pd
import datetime as dt

df = pd.read_csv(r'recorridos-realizados-2020.csv')

df.head(2)
Id_start    start_date          end_date                Id_end      ID_cyclist
75          2020-09-14 11:52:21 2020-09-14 11:58:10     186.0       155721
210         2020-09-14 11:51:41 2020-09-14 11:53:06     210.0       191320

df['start_date'] = pd.to_datetime(df['start_date'], format='%Y-%m-%d %H:%M:%S')
df['end_date'] = pd.to_datetime(df['end_date'], format='%Y-%m-%d %H:%M:%S')

df['timelapse'] = df['end_date'] - df['start_date']

df['timelapse'].head()
0        0 days
1        0 days

结果应该是: 0 天,00:05:49 0 天,00:01:25

我做错了什么?

【问题讨论】:

  • df['timelapse'].dt.total_seconds() 是否为您提供正确的值? p.s. pd.to_datetime 正确解析 ISO 格式,您不必提供格式。
  • df['timelapse'].dt.total_seconds() 每行给我 0.0。感谢您对 pd.to_datetime 的建议。
  • 您的代码对我有用。我也得到了秒数:0 0 days 00:05:49 1 0 days 00:01:25 你使用的是什么版本的 python 和 pandas?

标签: pandas datetime


【解决方案1】:

请看pandas time deltas

d1 = pd.to_datetime('2020-09-14 11:52:21')
d2 = pd.to_datetime('2020-09-14 11:58:10')
delta = (d2-d1)

print('seconds: ', delta.seconds)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多