Reputation: 311
My code is the following:
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)
My df_time_size is a datetime column with 12:00:00
I want it to store in that column whatever the times are plus the time_interval so if number=5
the first entry would be 12:05:00 however, I get the following error:
TypeError: unsupported operand type(s) for +: 'Timedelta' and 'datetime.time'
for the line: df_time_size.loc[:, 'time'] = (df_time_size.loc[:, 'time'] + time_interval)
I tried:
from datetime import datetime, timedelta
time_interval = timedelta(minutes = number)
Also tried:
df_time_size.loc[:, 'time']=dt.datetime.combine( df_time_size.loc[:, 'time'] + timedelta)
but both give me the same exact error.
Edited():
My df_time_size is also a datetime df_time_size['time'] = pd.to_datetime(df_time_size['time'], format='%H:%M:%S').dt.time
Upvotes: 0
Views: 2553
Reputation: 2222
This works for me. Is your df_time_size['time']
a datetime
type?
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)
Output:
time
0 2020-03-15 12:05:00
If I don't convert df_time_size['time']
to a datetime
type, it still works.
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)
Output:
time
0 12:05:00
Can you post the df
you are having? It will better explain the problem you are having.
Upvotes: 1