微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

选择具有设定时间段内最早时间值的数据框行

如何解决选择具有设定时间段内最早时间值的数据框行

我在 r 中有一个 df,其中有许多具有以下格式的记录,“arrival_time”值为 12 小时。

id 到达时间 wait_time_value
1 2020-02-20 12:02:00 10
2 2020-02-20 12:04:00 5
99900 2020-02-20 23:47:00 8
10000 2020-02-20 23:59:00 21

我想创建一个新的 df,该 df 为到达时间段的每 15 分钟时段和该时段中最早到达时间的记录的 wait_time_value 对应一行。因此,在上面的示例中,新 df 的第一行和最后一行将如下所示:

id period_start wait_time_value
1 2020-02-20 12:00:00 10
48 2020-02-20 23:45:00 8

我已使用以下代码来实现每 15 分钟范围内所有记录的平均等待时间,但我不确定如何选择最早记录的值?


df$period_start <- align.time(df$arrival_time- 899,n = 60*15)

avgwait_df <- aggregate(wait_time_value ~ period_start,df,mean)

解决方法

DataFrame.resampleGroupBy.first 一起使用,仅删除 NaN 并转换为 DataFrame

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

df = (df.resample('15Min',on='arrival_time')['wait_time_value']
        .first()
        .dropna()
        .reset_index(name='wait_time_value'))
print (df)
         arrival_time  wait_time_value
0 2020-02-20 12:00:00             10.0
1 2020-02-20 23:45:00              8.0
,

使用 dplyr

df %>%
   group_by(period_start) %>%
   summarise(wait_time = min(wait_time_value))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。