我有一个包含一个月时间戳的文本的框架,类似于这样:
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个条目的数组,即天数。
我怎样才能把小时的分组和日的分组合并结合起来呢?
1条答案
按热度按时间u91tlkcl1#
您可以直接按星期和小时分组:
字符串
或者使用
concat
和value_counts
:型
输出量:
型
reindex
。或者,对于矩形输出,使用
crosstab
:型
输出量:
型