gpt4 book ai didi

python - 在 Pandas 数据框中的日期时间列中查找时隙数

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:58 24 4
gpt4 key购买 nike

我的问题与我之前的问题有关。但是,它是不同的。所以我创建了一个新帖子。

我想在 pandas 数据帧的日期时间列中查找按“id1”分组的 10 分钟持续时间。

我的 table :

 id1       date_time               adress       a_size        
reom 2005-8-20 21:51:10 75157.5413 ceifwekd
reom 2005-8-20 22:51:10 3571.37946 ceifwekd
reom 2005-8-20 11:21:01 3571.37946 tnohcve
reom 2005-8-20 11:31:05 97439.219 tnohcve
penr 2005-8-20 17:07:16 97439.219 ceifwekd
penr 2005-8-20 19:10:37 7391.6258 ceifwekd
....

我需要

 id1       date_time               adress       a_size        10mins_num_by_id1
reom 2005-8-20 21:51:10 75157.5413 ceifwekd 7
reom 2005-8-20 21:56:10 3571.37946 ceifwekd 7
reom 2005-8-20 22:21:01 3571.37946 tnohcve 7
reom 2005-8-20 22:51:11 97439.219 tnohcve 7
penr 2005-8-20 17:07:16 97439.219 ceifwekd 2
penr 2005-8-20 17:17:37 7391.6258 ceifwekd 2
....

为了

  id1       date_time               adress       a_size        10mins_num_by_id1
reom 2005-8-20 21:51:10 75157.5413 ceifwekd 7
reom 2005-8-20 22:51:11 3571.37946 ceifwekd 7

我得到 7,因为从 21:51:10 到 22:51:11,它有 7 个 10 分钟的时间段,按“id1”分组

为了

 id1       date_time               adress       a_size        10mins_num_by_id1
penr 2005-8-20 17:07:16 97439.219 ceifwekd 2
penr 2005-8-20 17:17:37 7391.6258 ceifwekd 2

我得到 2,因为从 17:07:16 到 17:17:37 有 2 个 10 分钟的时间段按“id1”分组。

我的代码:

 df['10_min'] = df.groupby(['id1']).apply(lambda x: x['date_time'].dt.floor('10Min').count())

但是我得到了新列的 NaN。

谢谢

最佳答案

使用GroupBy.transform对于最大和最小 datetime 之间的差异,然后使用 Series.dt.ceil并将 timedeltas 转换为 10Mins 时间段:

df['date_time'] = pd.to_datetime(df['date_time'])

df['new'] = (df.groupby('id1')['date_time']
.transform(lambda x: x.max() - x.min())
.dt.ceil('10Min')
.dt.total_seconds()
.div(600)
.astype(int))
print (df)

id1 date_time adress a_size new
0 reom 2005-08-20 21:51:10 75157.54130 ceifwekd 7
1 reom 2005-08-20 22:51:10 3571.37946 ceifwekd 7
2 reom 2005-08-20 22:21:01 3571.37946 tnohcve 7
3 reom 2005-08-20 22:51:11 97439.21900 tnohcve 7
4 penr 2005-08-20 17:07:16 97439.21900 ceifwekd 2
5 penr 2005-08-20 17:17:37 7391.62580 ceifwekd 2

关于python - 在 Pandas 数据框中的日期时间列中查找时隙数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com