Groupby.sum() giving ValueError: overflow in timedelta operation
Groupby.sum() giving ValueError: overflow in timedelta operation
我正在寻找涉及 Timedelta 的转换的解决方案。以下是特征的最小值和最大值:
timeseries['column'].min()
timeseries['column'].max()
给予
Timedelta('0 days 11:05:14')
Timedelta('23743 days 06:25:08')
分别。
如何在保持时间分辨率的同时执行以下操作:
summed = timeseries.groupby('another column')['column1'].sum()
不给
ValueError: overflow in timedelta operation
我发现了类似的问题,但认为它们并没有真正正确地解决问题。这是一个更好的解决方案:
import datetime
将系列转换为秒:
timeseries['column'] = timeseries['column'].dt.total_seconds()
现在:
summed = timeseries.groupby('another column')['column1'].sum()
转换回时间增量:
summed['column'].fillna(0).apply(lambda x: datetime.timedelta(seconds=x))
我正在寻找涉及 Timedelta 的转换的解决方案。以下是特征的最小值和最大值:
timeseries['column'].min()
timeseries['column'].max()
给予
Timedelta('0 days 11:05:14')
Timedelta('23743 days 06:25:08')
分别。
如何在保持时间分辨率的同时执行以下操作:
summed = timeseries.groupby('another column')['column1'].sum()
不给
ValueError: overflow in timedelta operation
我发现了类似的问题,但认为它们并没有真正正确地解决问题。这是一个更好的解决方案:
import datetime
将系列转换为秒:
timeseries['column'] = timeseries['column'].dt.total_seconds()
现在:
summed = timeseries.groupby('another column')['column1'].sum()
转换回时间增量:
summed['column'].fillna(0).apply(lambda x: datetime.timedelta(seconds=x))