Если VOID-DAYS
представляет собой целое число дней, преобразовать Timedeltas в целые числа:
df['VOID-DAYS'] = df['VOID-DAYS'].dt.days
import numpy as np
import pandas as pd
df = pd.DataFrame({'VOID-DAYS': pd.to_timedelta(np.ones((106752,)), unit='D')})
try:
print(df['VOID-DAYS'].sum())
except ValueError as err:
print(err)
# overflow in timedelta operation
df['VOID-DAYS'] = df['VOID-DAYS'].dt.days
print(df['VOID-DAYS'].sum())
# 106752
Если Timedeltas включают секунд или меньше единицы, а затем использовать
df['VOID-DAYS'] = df['VOID-DAYS'].dt.total_seconds()
для преобразования значения в поплавок.
Панды Timedeltas (серия и TimedeltaIndexes) хранить все timedeltas как Интс, совместимых с timedelta64[ns]
DTYPE Numpy в. Этот dtype использует 8-байтовые ints для хранения timedelta в наносекундах.
Наибольшее количество дней, изображаемых в этом формате
In [73]: int(float(np.iinfo(np.int64).max)/(10**9 * 3600 * 24))
Out[73]: 106751
Именно поэтому
In [74]: pd.Series(pd.to_timedelta(np.ones((106752,)), unit='D')).sum()
ValueError: overflow in timedelta operation
поднимает ValueError
, но
In [75]: pd.Series(pd.to_timedelta(np.ones((106751,)), unit='D')).sum()
Out[75]: Timedelta('106751 days 00:00:00')
не.
Это означает, что ваши значения сумм превышают максимальные пределы timedelta: https://docs.python.org/3/library/datetime.html#timedelta-объекты, сколько у вас строк? – EdChum