gpt4 book ai didi

python - 通过对两列进行分组来创建热图

转载 作者:行者123 更新时间:2023-12-05 03:17:44 24 4
gpt4 key购买 nike

我想使用 plt.imshow() 创建一个热图数组。但我对如何转换我的数据框并填充 7x24 数组有一些疑问。我的目标是统计同一天同一时间的所有访问:

visits = [
(1,13),
(2,1),
(1,13),
(1,13),
(2,18),
(5,3),
(6,1),
(5,3),
(1,2),
(2,16),
(2,16),
(2,18),
(4,7)
]

expected_df = [
(1,13,3),
(2,1,1),
(2,18,2),
(5,3,2),
(1,2,1),
(2,16,2),
(4,7,1),
(6,1,1)
]

visits = pd.DataFrame(visits , columns = ['day','hour'])
expected_df = pd.DataFrame(expected_df , columns = ['day','hour', 'count'])

我是 pandas 的新手,所以我真的不知道如何将访问数据帧转换为 expected_df 数据帧并使用 expected_df 数据帧创建一个 7x24 数组,以便使用 plt.imshow() 创建热图。我希望我的问题足够清楚。

最佳答案

对于第一部分,您想要按多列分组(让我们重置索引并为其命名):

expected_df = visits.groupby(['day', 'hour']).size().reset_index(name='count')

对于第二部分,绘图,我从上下文假设,没有数据意味着没有访问,所以热图上为 0

heat = np.zeros((7,24))
heat[expected_df['day'], expected_df['hour']] = expected_df['count']
plt.imshow(heat)
plt.show()

关于python - 通过对两列进行分组来创建热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73998931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com