【问题标题】:Groupby.sum() giving ValueError: overflow in timedelta operationGroupby.sum() 给出 ValueError:timedelta 操作中的溢出
【发布时间】:2017-10-11 01:01:02
【问题描述】:

我正在寻找涉及 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

【问题讨论】:

    标签: pandas group-by sum timedelta


    【解决方案1】:

    我发现了类似的问题,但认为它们并没有真正正确地解决问题。这是一个更好的解决方案:

    import datetime 
    

    将系列转换为秒:

    timeseries['column'] = timeseries['column'].dt.total_seconds()
    

    现在:

    summed = timeseries.groupby('another column')['column1'].sum()
    

    转换回timedelta:

    summed['column'].fillna(0).apply(lambda x: datetime.timedelta(seconds=x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2012-03-05
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多