我有一个pandas数据帧列,包含时间数据,分钟和秒都是这样的 22:15,19:43等我需要转换它,所以我可以用它做一些计算。数据处于unicode的事实使得这项任务变得更加困难。
答案 0 :(得分: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