有没有办法修复或绕过数据框中特定列中的奇怪时间格式?
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]
我正在使用 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]