计算出的excel时间差结果不是时间格式要如何解决

用outtime减去intime后计算出的costtime在导出的excel中不是时间格式,要如何转换?
最后导出的excel如何只显示cuslot、intime、outtime、costtime这四项?

img

img

望解答!!

那不就是相差的天数吗


import pandas as pd
import numpy as np

def fun(seri):
    d = (seri['outTime'] - seri['inTime'])
    x1,y1 = divmod(d.seconds, 3600)
    x2, y2 = divmod(y1, 60)
    return f"{x1+d.days*24:02}:{x2:02}:{y2:02}"

data = [[101, 2363, '2022-06-22 15:17:39', '2022-06-21 15:17:39'],
        [101, 2233, '2022-07-06 13:37:10', '2022-07-06 13:37:50'],
        [102, 3978, '2022-07-08 10:35:34', '2022-07-08 18:16:08'],
        [102, 1382, '2022-07-08 18:16:34', '2022-07-11 18:21:51'],]
df = pd.DataFrame(data=data, columns=['code', 'mv', 'inTime', 'outTime'],)

df['inTime'] = df['inTime'].astype(np.datetime64)
df['outTime'] = df['outTime'].astype(np.datetime64)
df['costTime'] = df.apply(fun, axis = 1)
print(df)

"""--result
   code    mv              inTime             outTime   costTime
0   101  2363 2022-06-22 15:17:39 2022-06-21 15:17:39  -24:00:00
1   101  2233 2022-07-06 13:37:10 2022-07-06 13:37:50   00:00:40
2   102  3978 2022-07-08 10:35:34 2022-07-08 18:16:08   07:40:34
3   102  1382 2022-07-08 18:16:34 2022-07-11 18:21:51   72:05:17

"""