如何从日期时间列创建月/小时组合计数的热图?

问题描述 投票:0回答:0

我的数据框列如下所示:

df["created_at"].head()

0    2016-06-01T11:42:22.908Z
1    2016-06-01T11:42:25.111Z
2    2016-06-01T11:42:25.900Z
3    2016-06-01T11:42:26.184Z
4    2016-06-01T11:42:26.350Z
Name: created_at, dtype: object

我想要此数据的热图,其中 x 轴为 1 到 23 小时,y 轴为 1 到 12 月。这是我的尝试之一:

created_hours = pd.to_datetime(df.created_at).dt.hour
created_months = pd.to_datetime(df.created_at).dt.month
df_new = pd.DataFrame({"Month": created_months, "Hour": created_hours})
grouped = df_new.groupby(["Month", "Hour"])["Hour"].count().to_frame()
grouped.rename(columns={"Hour":"Count"})

res = grouped.pivot_table(index="Month", columns="Hour", values="Count", aggfunc=sum)
# -> ERROR

我也尝试过不分组,创建一个系列并且不转换为数据框,使用pivot而不是pivot_table,sns.heatmap()函数来自上述的变体,但没有任何效果。一如既往,我查看了许多问答并尝试调整代码,但没有成功,并且上面的代码在我看来不是正确的方法。我不知道是否应该将其转换为数据框、组,甚至为月/小时创建 2 列。我怎样才能显示这个热图?

python pandas dataframe seaborn heatmap
© www.soinside.com 2019 - 2024. All rights reserved.