我有一个从模拟数据中计算出来的'持续时间'值。这只是计算出的'小时'值。 我写了下面的代码。
Duration = 16571835.2920344
Dyn_ETA = pd.Timedelta(hours=Duration)
Dyn_ETA1 = Dyn_ETA.total_seconds()
hours = Dyn_ETA1/3600
result_Dyn = '{0:02.0f}:{1:02.0f}'.format(*divmod(hours * 60, 60))
但我得到了以下错误:
OverflowError: int too big to convert
for
Dyn_ETA = pd.Timedelta(hours=Duration)
我无法在实时数据中得到这个 "持续时间 "值。但为了安全起见,我如何解决这个问题?
你在这里使用了一个错误的工具。pd.Timedelta
处理持续时间作为一个 int64
纳秒的数值。这样一来,多少可以得出5124095小时(大约584年)的最大值。
你的初始持续时间接近这个最大值的两倍,不能用这种方式表示。完全停止。
但你不需要它。
hour = Duration # taking the total_seconds() from the Timedelta in hour divided by 3600 is a no-op
result_Dyn = '{0:02.0f}:{1:02.0f}'.format(*divmod(hours * 60, 60))