为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一段时间内使用pandas groupby来查找同一时间​​段内多年来的平均计数

如何在一段时间内使用pandas groupby来查找同一时间​​段内多年来的平均计数

白衣染霜花 2021-09-11 15:10:06
我已经进行了广泛的搜索,但还没有找到这样做的好方法。我有一个带有我自己的短信数据的 Pandas 数据框。它有“utctime”、“sender”、“recipient”和“message”列。我想要做的是按任意分钟时间段(例如 10 或 20 分钟)对其进行分组,然后在多年内查看我在一天中每个时间段发送的消息量。数据的前几行看起来像这样,这又延长了 2 年:                        utctime  sender   recipient     message0 2016-11-25 18:00:25.877000+00:00  Person1  Me            message11 2016-11-25 18:50:58.694000+00:00  Person2  Me            message22 2016-11-25 18:54:41.871000+00:00  Me       Person2       message33 2016-11-25 18:54:58.583000+00:00  Person2  Me            message44 2016-11-25 19:01:19.694000+00:00  Me       Person2       message5这样做的最佳方法是什么,以便我可以从 00:00 到 23:40 以 20 分钟为增量查看自己的短信频率?到目前为止,我所做的是将时间折叠为一天的另一个功能:def time_of_day(data, tz_info):    utctime = data.utctime.dt.tz_convert(tz_info)    data['timeofday'] = pd.to_datetime({'year': 2017,                                        'month': 1,                                        'day': 1,                                        'hour': utctime.dt.hour,                                        'minute': utctime.dt.minute,                                        'second': utctime.dt.second})    return data然后我使用自定义石斑鱼分组:sf = pytz.timezone('US/Pacific')timedelta = '10min'grouper = pd.Grouper(key='timeofday', freq=timedelta)data = time_of_day(data, sf) # data is returned in time of day for tzfreq = data.groupby(grouper).count()有没有更好的方法来做到这一点?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信