将纳秒转换为天、小时、分钟和秒

3
我正在使用Python和Pandas df进行编程,尝试将包含纳秒的列转换为带有天数、小时、分钟和秒的时间,但是我没有成功。
我的原始df如下所示:
ID         TIME_NANOSECONDS     
1          47905245000000000                       
2          45018244000000000                       
3          40182582000000000                     

结果应该像这样:

ID         TIME_NANOSECONDS          TIME
1          47905245000000000         554 days 11:00:45.000000000               
2          45018244000000000         521 days 01:04:04.000000000 
3          40182582000000000         465 days 01:49:42.000000000          

我找到了一些建议使用timedelta的答案,但是下面的代码返回了一个日期,这不是我想要的。
temp_fc_col['TIME_TO_REPAIR_D'] = datetime.timedelta(temp_fc_col['TIME_TO_REPAIR'], unit='ns')

或者,

temp_fc_col['TIME_TO_REPAIR_D'] = (timedelta(microseconds=round(temp_fc_col['TIME_TO_REPAIR'], -3)

返回一个错误:timedelta微秒组件的类型不受支持:Series。可能是因为这个语句只能一次处理一个值。
1个回答

3

使用 to_timedelta 方法可以很好地处理 Series,同时应省略参数 unit='ns'

temp_fc_col['TIME_TO_REPAIR_D'] = pd.to_timedelta(temp_fc_col['TIME_NANOSECONDS'])
print (temp_fc_col)
   ID   TIME_NANOSECONDS  TIME_TO_REPAIR_D
0   1  47905245000000000 554 days 11:00:45
1   2  45018244000000000 521 days 01:04:04
2   3  40182582000000000 465 days 01:49:42

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接