感谢您的帮助!
我想用df数据在python中生成一个热图。
(我在项目中使用的是熊猫,seaborn,numpy和matplotlib)
数据帧df如下:
index | a | b | c | year | month
0 | | | | 2013 | 1
1 | | | | 2015 | 4
2 | | | | 2016 | 10
3 | | | | 2017 | 1
在数据集中,各行均为工单。
数据集很大(51个列和100k +行),
所以a,b,c只是显示一些随机列。 (对于月份=> 1 = 1月,2 = 2月...)
热图:
x轴=年,
y轴=月,
值:并且在热图中,我希望两个轴之间的值是行数的计数,在该行中已在当年和月份给出了工单。
我想象的结果应该类似于seaborn文档中的: https://seaborn.pydata.org/_images/seaborn-heatmap-4.png
我是编码的新手,尝试了很多我在互联网上发现的随机内容,但无法使其正常工作。
感谢您的帮助!
答案 0 :(得分:0)
这应该做(使用生成的数据):
import pandas as pd
import seaborn as sns
import random
y = [random.randint(2013,2017) for n in range(2000)]
m = [random.randint(1,12) for n in range(2000)]
df = pd.DataFrame([y,m]).T
df.columns=['y','m']
df['count'] = 1
df2 = df.groupby(['y','m'], as_index=False).count()
df_p = pd.pivot_table(df2,'count','m','y')
sns.heatmap(df_p)
您可能不需要count
列,但我添加了它,因为我需要一个额外的列来使groupby
工作。