Если ваши столбцы в формате datetime
или timedelta
:
# New column is a timedelta object
df["time_c"] = (df["time_b"] - df["time_a"])
Если ваши столбцы в формате datetime.time
(который, по-видимому, они есть) :
def time_diff(time_1,time_2):
"""returns the difference between time 1 and time 2 (time_2-time_1)"""
now = datetime.datetime.now()
time_1 = datetime.datetime.combine(now,time_1)
time_2 = datetime.datetime.combine(now,time_2)
return time_2 - time_1
# Apply the function
df["time_c"] = df[["time_a","time_b"]].apply(lambda arr: time_diff(*arr), axis=1)
Кроме того, вы можете преобразовать в timedelta, сначала преобразовав в строку:
df["time_a"]=pd.to_timedelta(df["time_a"].astype(str))
df["time_b"]=pd.to_timedelta(df["time_b"].astype(str))
df["time_c"] = df["time_b"] - df["time_a"]