通过将天转换为小时以HH:MM:SS格式显示熊猫timedelta

时间:2020-09-26 17:44:09

标签: python pandas timedelta

如果我使用

first_an_last['duration'] = (first_an_last.last_time - first_an_last.first_time)

我明白了

0       0 days 04:19:00
1       2 days 04:39:00
2       1 days 06:10:00

哪个很好,但我想显示这个:

0       04:19:00
1       52:39:00
2       30:10:00

我当然可以拥有这个

first_an_last['duration'] = (first_an_last.last_time - first_an_last.first_time) / pd.Timedelta(hours=1)

我可以得到的地方

0        4.316667
1        52.650000
2        30.166667

但是我想将其显示为HH:MM:SS格式,而不考虑小时数,因为在此示例中用户不了解0.65小时是多少分钟(和秒)

1 个答案:

答案 0 :(得分:0)

尝试一下

def converter(x):
    hour = x.hour + (x.days * 24)
    hour = hour if hour > 9 else "0"+str(hour)
    minutes = x.minutes if minutes > 9 else "0"+str(minutes)
    seconds = x.seconds if minutes > 9 else "0"+str(seconds)
    return f"{hour}:{minutes}:{seconds}"

考虑列first_an_last['duration']采用timedelta格式

first_an_last['duration'] = first_an_last['duration'].apply(lambda x: converter(x.components)

如果first_an_last['duration']的格式不是timedelta,请尝试以下一种格式

first_an_last['duration'] = first_an_last['duration'].apply(lambda x: converter(pd.to_timedelta(x).components)

让我知道您的结果