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