Python 如何将聚合日期时间对象用于int

Python 如何将聚合日期时间对象用于int,python,datetime,pandas,aggregate,Python,Datetime,Pandas,Aggregate,我有这样的数据帧结构 id time number 0 1 1970-01-01 00:00:00 1 1 2 1970-01-02 00:00:00 2 2 1 1970-01-03 00:00:00 2 我希望groupbyid并将具有pd.Datetimedtype的时间聚合为int表示时间增量,我有以下代码: def interval(a):

我有这样的数据帧结构

         id   time                   number
0        1    1970-01-01 00:00:00    1
1        2    1970-01-02 00:00:00    2
2        1    1970-01-03 00:00:00    2
我希望groupby
id
并将具有
pd.Datetime
dtype的时间聚合为
int
表示时间增量,我有以下代码:

def interval(a):
    return (np.max(a) - np.min(a)).days

_df = df.groupby(['id'], as_index=False).agg(
        {
            "number": numpy.sum,
            "time": interval,
        }
    )
列时间具有原始数据类型
pd.Datetime
,但是聚合的数据是int,这导致
\u df
列中的数据从int转换为
pd.Datetime
类似
1970-01-01 00:00:00.000000000


您能告诉我如何得到正确的结果,即聚合数据帧的
time
列是
int

您可以尝试通过
np.timedelta64(1,'D')
timedelta
转换为
days
,然后通过以下方式将
float
转换为
integer

def interval(a):
    a = (np.max(a) - np.min(a)) / np.timedelta64(1, 'D')
    return a

_df = df.groupby(['id'], as_index=False).agg(
        {
            "number": np.sum,
            "time": interval,
        }
    )
_df['time']  = _df['time'].astype(int)  
print _df  

   id  number  time
0   1       3     2
1   2       2     0