Pandas “%H:%M”格式的时间增量

Pandas “%H:%M”格式的时间增量,pandas,timedelta,Pandas,Timedelta,有没有办法将timedelta列转换为%H:%M格式的字符串?我需要这个,即使是超过24小时的TimeDelta 我想这样做是为了制作一个.csv文件,可以在excel软件、google sheets等电子表格中使用。没有内置的东西。你必须自己动手: 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

有没有办法将timedelta列转换为%H:%M格式的字符串?我需要这个,即使是超过24小时的TimeDelta


我想这样做是为了制作一个.csv文件,可以在excel软件、google sheets等电子表格中使用。

没有内置的东西。你必须自己动手:

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

没有内置的东西。你必须自己动手:

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

使用整数和余数除法,您可以使用总秒数来确定字符串的格式。此方法当前忽略毫秒

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

使用整数和余数除法,您可以使用总秒数来确定字符串的格式。此方法当前忽略毫秒

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

谢谢我希望有一个内置的,但你做了这一班轮非常好!“:02.0f”是什么意思?这是格式字符串。它告诉Python将字符串0-pad到长度2,并且不使用小数点谢谢!我希望有一个内置的,但你做了这一班轮非常好!“:02.0f”是什么意思?这是格式字符串。它告诉Python将字符串0-pad到长度2,并且不使用小数点