如何对行进行分组并估计最大值和最小值之间的差异?

2024-04-25 19:35:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧df

id  date_time
0   2017-12-04 03:59:44
0   2017-12-04 04:01:44
1   2017-12-04 04:04:44
1   2017-12-04 04:08:44
1   2017-12-04 04:08:44

如果我打印每个特定的date_time行的type,那么我得到类型<class 'pandas.tslib.Timestamp'>

我需要按id对行进行分组,并估计最大值和最小值之间的差异(以秒为单位)

我尝试运行以下代码:

s = df.groupby('id').date_time.transform(lambda x: (x.max()-x.min()).seconds)

但是s给出了以下输出格式(值可能与上述示例不一致,但格式一致):

1970-01-01 00:00:00.000000000
1970-01-01 00:00:00.000000000
1970-01-01 00:00:00.000000120

可以看出,这些值不是秒,而是日期和时间值。如何获得秒数的数值

我试图使用df["date_time"] = df["date_time"].apply(lambda x: x.to_pydatetime()),但没有用


Tags: 数据lambdaid类型pandasdfdatetime