int 太大而无法在 python 中转换
int too big to convert in python
我从模拟数据中计算出 'duration' 值。这不过是计算出的 'hours' 值。我写了下面的代码:
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)
我不会在实时数据中得到这个 '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))
我从模拟数据中计算出 'duration' 值。这不过是计算出的 'hours' 值。我写了下面的代码:
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)
我不会在实时数据中得到这个 '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))