有没有办法修复或绕过数据框中特定列中的奇怪时间格式?

Is there a way to fix or bypass weird time formats in a specific column in a dataframe?

我正在使用 Pandas 中的 SLURM 数据集,其时间格式与 'Elapsed' 列中的类似:

00:00:00
00:26:51

但是有时候会有大于24小时的段,显示是这样的:

1-00:02:00
3-01:25:02

我想找到整个列的平均值,但它错误地处理了条目超过 24 小时的条目的 to_timedelta 转换,如上所示。一个例子是这样的:

Before to_timedelta: 3-01:25:02
after to_timedelta: -13 days +10:34:58

我不能简单地将列转换为新格式,因为当条目不超过 24 小时时,前面的零不存在,例如:0-20:00:00 如果有办法的话,我相信这种方法是最简单的。

是否有解决此转换的方法或解决此问题的任何其他想法?

一种解决方法是将 - 替换为 days:

pd.to_timedelta(df['time'].str.replace('-','days'))

输出(以上4行):

0   0 days 00:00:00
1   0 days 00:26:51
2   1 days 00:02:00
3   3 days 01:25:02
Name: time, dtype: timedelta64[ns]