减去熊猫中的日期时间对象

时间:2019-12-02 10:06:54

标签: pandas dataframe datetime type-conversion

我的数据框中有两列具有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)

1 个答案:

答案 0 :(得分:2)

不必像注释中提到的@Dan一样加上开始日期时间,因为要减去。

因此,将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