首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >%H:%M格式的Timedelta

%H:%M格式的Timedelta
EN

Stack Overflow用户
提问于 2020-05-06 18:47:22
回答 2查看 513关注 0票数 1

有一种方法可以将timedelta列转换为"%H:%M“格式的字符串吗?我需要这个,即使对超过24小时的timedeltas来说

我想这样做是为了制作一个.csv文件,可以在类似于电子表格的软件中使用(excel,google .)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-06 19:03:26

没有内置的东西。你得自己滚:

代码语言:javascript
复制
s = pd.to_timedelta(['0:10:00', '12:34:56', '25:12:34']).to_series()
s.dt.total_seconds().apply(lambda s: f'{s // 3600:02.0f}:{(s % 3600) // 60:02.0f}')

结果:

代码语言:javascript
复制
0 days 00:10:00    00:10
0 days 12:34:56    12:34
1 days 01:12:34    25:12
dtype: object
票数 3
EN

Stack Overflow用户

发布于 2020-05-06 19:03:56

使用一些整数和余数除法,您可以使用total_seconds来确定如何设置字符串的格式。此方法当前忽略毫秒。

代码语言:javascript
复制
def format_timedelta(s):
    s = s.dt.total_seconds()

    seconds = (s%60).astype(int).astype(str).str.zfill(2)
    minutes = (s//60%60).astype(int).astype(str).str.zfill(2)
    hours = (s//3600).astype(int).astype(str)

    return hours+':'+minutes+':'+seconds


s = pd.Series(pd.to_timedelta(['24:20:00', '00:15:00', '123:12:12', 
                               '123:02:12', '4:20:00.1123']))

format_timedelta(s)
0     24:20:00
1      0:15:00
2    123:12:12
3    123:02:12
dtype: object
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61642963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档