清除日期字符串并在Pandas / Python 2中显示负数时间

时间:2015-09-28 11:04:44

标签: python date datetime pandas

我希望有人可以帮助我解决这个大熊猫问题。我觉得答案很明显,但我无法绕过它。我有两列,每列有YYYY-MM-DD HH:MM:SS值,如下所示:

      A                     B
0     2015-09-27 02:20:00   2015-09-27 02:24:59
1     2015-09-27 02:18:59   2015-09-27 02:00:00
2     2015-09-27 01:57:00   2015-09-27 02:00:00
3     2015-09-27 02:06:00   2015-09-27 02:02:59

1)我想剥离YYYY-MM-DD数据并保留时间数据,我该怎么做?

2)我想添加第3列

df["C"] = df["A"] - df["B"]

其值有时为+ ve,有时为-ve。如何将-ve值显示为" -HH:MM:SS" ?在我尝试之前,我会继续获得类似" -1天+23:45:00"而不是-00:15:00。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作来删除日期:

import datetime
a = datetime.datetime.strptime(date_string , '%Y-%m-%d %H:%M:%S')
stripped = a.strftime('%H:%M:%S')

获得负增量,你可以做到:

def diff(t1,t2):
    d = t1-t2
    diff_seconds = d.total_seconds()
    result = ''
    if diff_seconds< 0:
        result = '-'
        diff_seconds *= -1
    result += datetime.datetime.utcfromtimestamp(diff_seconds).strftime('%H:%M:%S')
    return result