-2

我有一个 pandas 数据框列,其中包含时间数据和分钟和秒,例如 22:15、19:43 等。我需要对其进行转换,以便可以使用它进行一些计算。数据采用 unicode 格式的事实使这项任务变得更加困难。

4

1 回答 1

3

您可以使用 datetime 和 timedelta 来解析和进行计算。

In [84]: import pandas as pd

In [85]: from datetime import datetime, timedelta

In [86]: def convert(s):
             t = datetime.strptime(s, "%H:%M")
             return timedelta(hours=t.hour, minutes=t.minute)

In [87]: df = pd.DataFrame({'A':[u'22:15', u'19:43']})

In [88]: df
Out[88]:
       A
0  22:15
1  19:43

In [89]: dfc = df.applymap(convert)

In [90]: dfc
Out[90]:
          A
0  22:15:00
1  19:43:00

dfc 保存 timedelta 对象,这些对象可用于进行计算。例如添加 24 小时。

In [91]: dfc + timedelta(hours=24)
Out[91]:
                 A
0  1 day, 22:15:00
1  1 day, 19:43:00
于 2013-04-30T08:36:02.630 回答