【问题标题】:Convert nanoseconds to days, hours, min and seconds将纳秒转换为天、小时、分钟和秒
【发布时间】:2020-10-16 06:23:12
【问题描述】:

我在 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 微秒组件的类型不受支持:系列。可能是因为这个语句一次只能处理一个值。

【问题讨论】:

    标签: python pandas timedelta


    【解决方案1】:

    使用to_timedeltaSeries 配合使用,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
    

    【讨论】:

      猜你喜欢
      • 2012-01-06
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2017-05-10
      • 2015-06-02
      相关资源
      最近更新 更多