繁体   English   中英

TypeError: 不支持的操作数类型 +: 'Timedelta' 和 'datetime.time - python

[英]TypeError: unsupported operand type(s) for +: 'Timedelta' and 'datetime.time - python

我的代码如下:

 import datetime
 df_time_size=result1.loc[:, ['time']].copy()
 time_interval = datetime.timedelta(minutes=number)
 df_time_size.loc[:, 'time'] = (df_time_size.loc[:, 'time'] + time_interval)

我的 df_time_size 是一个日期时间列 12:00:00 我希望它存储在该列中,无论时间是多少加上 time_interval 所以如果number=5第一个条目将是 12:05:00 但是,我收到以下错误: TypeError: unsupported operand type(s) for +: 'Timedelta' and 'datetime.time'行: df_time_size.loc[:, 'time'] = (df_time_size.loc[:, 'time'] + time_interval) I试过:

from datetime import datetime, timedelta
time_interval = timedelta(minutes = number)

还试过:

 df_time_size.loc[:, 'time']=dt.datetime.combine( df_time_size.loc[:, 'time'] + timedelta)

但两者都给了我同样的错误。

Edited(): 我的 df_time_size 也是一个日期df_time_size['time'] = pd.to_datetime(df_time_size['time'], format='%H:%M:%S').dt.time

这对我有用。 您的df_time_size['time']datetime df_time_size['time']类型吗?

time_interval = datetime.timedelta(minutes=5)
df_time_size = pd.DataFrame({'time': ['12:00:00']})
df_time_size['time'] = pd.to_datetime(df_time_size['time'])
df_time_size.loc[:, 'time'] = (df_time_size.loc[:, 'time'] + time_interval)
print(df_time_size)

输出:

                 time
0 2020-03-15 12:05:00

如果我不将df_time_size['time']转换为datetime类型,它仍然有效。

time_interval = datetime.timedelta(minutes=5)
df_time_size = pd.DataFrame({'time': ['12:00:00']})
df_time_size.loc[:, 'time'] = (df_time_size.loc[:, 'time'] + time_interval)
print(df_time_size)

输出:

      time
0 12:05:00

您可以发布您拥有的df吗? 它将更好地解释您遇到的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM