“%H:%M”格式的时间增量
Timedelta in "%H:%M" format
有办法将 timedelta
列转换为“%H:%M”格式的字符串吗?即使超过 24 小时timedeltas
我也需要这个
我想这样做是为了制作一个 .csv 文件,该文件可用于类似电子表格的软件(excel、google 工作表...)
没有内置任何东西。你必须自己动手:
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}')
结果:
0 days 00:10:00 00:10
0 days 12:34:56 12:34
1 days 01:12:34 25:12
dtype: object
通过一些整数和余数除法,您可以使用 total_seconds
来确定如何格式化您的字符串。此方法目前忽略毫秒。
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
有办法将 timedelta
列转换为“%H:%M”格式的字符串吗?即使超过 24 小时timedeltas
我也需要这个
我想这样做是为了制作一个 .csv 文件,该文件可用于类似电子表格的软件(excel、google 工作表...)
没有内置任何东西。你必须自己动手:
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}')
结果:
0 days 00:10:00 00:10
0 days 12:34:56 12:34
1 days 01:12:34 25:12
dtype: object
通过一些整数和余数除法,您可以使用 total_seconds
来确定如何格式化您的字符串。此方法目前忽略毫秒。
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