gpt4 book ai didi

python - 计算日期和时间戳列之间的时间差(以分钟为单位)

转载 作者:行者123 更新时间:2023-12-01 07:21:02 24 4
gpt4 key购买 nike

我似乎无法弄清楚我做错了什么,我的 df 中有 2 列,如下所示,

    Date                Time 
2019-07-23 21:17:47.599 22:00:00.000
2019-07-23 21:11:46.973 21:50:00.000

我想在 df 中创建一个新列来计算这两列之间的分钟差。我正在尝试两种不起作用的方法。

第一种方法是我使用 pd.to_timedelta(pd.to_datetime(df3.Time)-pd.to_timedelta(df3.Date).dt.strftime('%H:%M:%S')) / np.timedelta64(1, 'm')

如果我尝试这样做,我会收到错误 ValueError: only leading negative signs are allowed

我尝试的第二种方法是通过执行以下操作来转换日期列

df3['new_time'] = [d.time() for d in df3['Date']]

这给了我一个时间戳,例如 22:25:03.895000

然后我使用(pd.to_datetime(df3.Time) - pd.to_datetime(df3.new_time))

我使用时遇到的错误是 TypeError: <class 'datetime.time'> is not convertible to datetime

我不确定我遗漏了什么或做得不正确,但是有没有办法可以正确地创建一个新列,为我提供以分钟为单位的时间 - 日期值?

非常感谢

最佳答案

你已经很接近了,只是无法将Time列转换为datetimes,而只能转换为timedeltas并且如果首先有Python对象时间转换为字符串:

df3['new'] = ((pd.to_timedelta(df3.Time.astype(str))- 
pd.to_timedelta(df3.Date.dt.strftime('%H:%M:%S'))) /
np.timedelta64(1, 'm'))
print (df3)
Date Time new
0 2019-07-23 21:17:47.599 22:00:00.000 42.216667
1 2019-07-23 21:11:46.973 21:50:00.000 38.233333

关于python - 计算日期和时间戳列之间的时间差(以分钟为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com