我的数据框中有两列带有datetime64 [ns]值。我想从开始日期中减去结束日期,然后将该值放置在新列中?我怎么做?
这是我的数据的示例:
StartedDate(Column1)
2018-09-02 02:54:39
2018-09-02 15:14:31
2018-09-02 18:04:35
2018-09-02 18:04:35
EndedDate(第2列)
208-09-02 15:20:15
2018-09-02 18:04:34
2018-09-02 18:11:15
2018-09-02 18:39:34
在excel中,它将日期转换为数字(例如43789,04)。我想对这些值执行相同的操作,然后将它们转换为此类数字,然后减去它们。但是,我发现在Python中很难做到这一点。
我目前想要的输出格式为(12:25:36),而我希望这样(43740.64-43740.12 = 0.52)
像注释中提到的@Dan一样,不必添加开始日期时间,因为要减去。
因此,将timedeltas转换为,Series.dt.days
然后加上Series.dt.seconds
除以86400
:
df['StartedDate'] = pd.to_datetime(df['StartedDate'])
df['EndedDate'] = pd.to_datetime(df['EndedDate'])
delta = df['EndedDate'] - df['StartedDate']
df['diff'] = delta.dt.days.astype(float) + (delta.dt.seconds.astype(float) / 86400)
print (df)
StartedDate EndedDate diff
0 2018-09-02 02:54:39 2018-09-02 15:20:15 0.517778
1 2018-09-02 15:14:31 2018-09-02 18:04:34 0.118090
2 2018-09-02 18:04:35 2018-09-02 18:11:15 0.004630
3 2018-09-02 18:04:35 2018-09-02 18:39:34 0.024294
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句