我已经进行了广泛的搜索,但还没有找到这样做的好方法。我有一个带有我自己的短信数据的 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()有没有更好的方法来做到这一点?
添加回答
举报
0/150
提交
取消