我有一个像这样的数据框
Hour Minute Second Value
0 14.0 57.0 17.0 0.0
1 14.0 57.0 18.0 0.0
2 14.0 57.0 19.0 138.6
3 14.0 57.0 20.0 138.6
4 14.0 57.0 21.0 138.6
5 14.0 57.0 22.0 138.6
我想将小时/分钟/秒列合并到一个时间戳索引中。我有个约会要用。我设法用df.apply
with来做到这一点,datetime.datetime.combine(mydate, datetime.time(hour, min, sec))
但是它太慢了。
有没有办法使用内置的熊猫函数有效地做到这一点?
想法是多Hour
和Minutes
,求和,并添加字符串日期时间在to_datetime
:
s = df['Hour'].mul(10000) + df['Minute'].mul(100) + df['Second']
df['date'] = pd.to_datetime('2015-01-01 ' + s.astype(str), format='%Y-%m-%d %H%M%S.%f')
print (df)
Hour Minute Second Value date
0 14.0 57.0 17.0 0.0 2015-01-01 14:57:17
1 14.0 57.0 18.0 0.0 2015-01-01 14:57:18
2 14.0 57.0 19.0 138.6 2015-01-01 14:57:19
3 14.0 57.0 20.0 138.6 2015-01-01 14:57:20
4 14.0 57.0 21.0 138.6 2015-01-01 14:57:21
5 14.0 57.0 22.0 138.6 2015-01-01 14:57:22
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句