我的数据框列如下所示:
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 列。我怎样才能显示这个热图?