如何将 timedelta 转换为小时

2024-04-03

我有一个 timedelta 数据框

JC time
1 3days 21:02:05
2 1days 23:50:07
3 6days 19:28:36

但我想要

1 93:02:05
2 47:50:07
3 163:28:36

我该如何转换它?


使用、组合pd.to_timedelta https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_timedelta.html, Series.dt.components https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.components.html, DataFrame.agg https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.agg.html & Series.str.zfill https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.zfill.html:

d = pd.to_timedelta(df['time']).dt.components[['days', 'hours', 'minutes', 'seconds']]
d['hours'] = d['hours'].add(d.pop('days') * 24)

df['time'] = d.astype(str).agg(lambda s: ':'.join(s.str.zfill(2)), axis=1)

Result:

# print(df)

   JC       time
0   1   93:02:05
1   2   47:50:07
2   3  163:28:36
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 timedelta 转换为小时 的相关文章

随机推荐