我有一个数据框,包含一个月的文本,并带有时间戳,类似于:
timestamp text
2023-01-01 00:00:00 ABC
2023-01-01 00:00:01 DEF
2023-01-01 00:00:01 GHI
...
我想计算一周中每小时和每一天的文本数量,所以最后有168(24*7)个数字.
例如,如果2023-01-01,也就是周日,上午10点到11点之间有10条短信,那么下个周日(2023-01-08)总是在上午10点到11点之间有15条短信,以此类推.在结束时,所有周日上午10点到11点的文本数量是:10+15+...
我想在一周中的每一小时和每一天都这样做.
如果原始数据帧是df
,我开始按小时分组:
hours_df = df.groupby(pd.Grouper(key="timestamp", freq="h")).size().reset_index(name="count_hours")
然后我加了day_of_week
:
hours_df["day_of_week"] = hours_df["timestamp"].dt.dayofweek
但如果我现在以day_of_week
为单位进行分组:
day_df = hours_df.groupby("day_of_week").size().reset_index(name="count_days")
我将丢失有关小时数的信息,结果是一个包含7个条目的数据帧,即天数.
我怎样才能把时间分组和天分组结合起来呢?