【问题标题】:Is it possible to convert timedelta into hours?是否可以将 timedelta 转换为小时?
【发布时间】:2016-04-14 06:41:53
【问题描述】:

这是我的数据框:

issue,time_taken
aa,2 days 20:00:00.95
bb,2 days 19:12:48.276000

我只想将time_taken 列格式转换为小时。我只需要总小时数。

例如,我必须像这样显示输出

issue,time_taken,time_taken_hours
aa,2 days 20:00:00.95,68

【问题讨论】:

  • 看起来您正在查看datetime.timedelta() 实例。如果是这样,您可以使用columnvalue.total_seconds() / 3600 来获取小时值,但我不知道如何在 Pandas 中有效地做到这一点。
  • 如果格式始终为X days hh:mm:ss,则只需解析出X*24+hh
  • @cricket_007: 看起来和str(timedelta()) 的输出一模一样,只要使用提供的方法和属性就无需解析任何内容。
  • @MartijnPieters 啊,我对timedelta函数不太熟悉
  • @cricket_007:原来列类型是subclass of timedelta

标签: python python-2.7 pandas


【解决方案1】:

我认为你可以使用:

import numpy as np

df['time_taken_hours'] = df['time_taken'] / np.timedelta64(1, 'h')
print df
  issue             time_taken  time_taken_hours
0    aa 2 days 20:07:49.958000         68.130544
1    bb 2 days 19:12:13.383000         67.203717

Frequency conversion in doc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2018-11-21
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多