Pandas DataFrame:转换整数时间hh:mm

时间:2017-09-26 16:14:33

标签: python pandas

我的DataFrame包含

 dep_time   sched_dep_time
0   517.0   515
1   533.0   529
2   0.0     0.0
3   544.0   545
4   1.0     101

我希望它在5:17,5:15作为出发和预定出发时间,NaN充满0也是1.0表示在1:00离开 试过以下

flight_data['dep_time']=flight_data['dep_time'].astype(str).apply(lambda x: 
                        pd.to_timedelta(x[:-2] + x[-2:]+':00'))

值错误:期待hh:mm:ss格式,收到:21天13:00:00.000000000:00 我甚至不确定如何转换像0,1,2 ..这样的dep_time。谢谢,感谢您的帮助

1 个答案:

答案 0 :(得分:3)

  • pd.to_numericerrors='coerce'
  • fillna(0)
  • pd.to_timedelta
d1 = pd.to_numeric(df.stack(), errors='coerce').fillna(0)
(pd.to_timedelta(d1 // 100, unit='T') +
 pd.to_timedelta(d1 % 100, unit='S')).unstack()

  dep_time sched_dep_time
0 00:05:17       00:05:15
1 00:05:33       00:05:29
2 00:00:00       00:00:00
3 00:05:44       00:05:45
4 00:00:01       00:01:01