gpt4 book ai didi

python - 在 pandas 数据框中按列应用 seaborn 热图

转载 作者:太空宇宙 更新时间:2023-11-03 15:54:53 25 4
gpt4 key购买 nike

我试图在旋转的 pandas 数据框上使用 seaborn 形式的热图,就像在有效的超链接中一样

df = pd.DataFrame(np.random.randint(1,100,size = (3,2)))
df.columns = ['A','B']
df
sns.heatmap(df, annot=True, fmt="d", linewidths=.5,cmap="RdYlGn")

Output of code block - Entire Dataframe formatted as single heatmap输出选择 45 作为最小值,86 作为最大值,并对整个数据帧进行颜色编码

但我无法做的是明智地应用热图列即像按列而不是整个数据框应用条件格式一样。就像这个超链接中的例子一样 -

Output required/expected

对于 col1,选择最小值 45 和最大值 88 并进行格式化,对于 col2,分别选择 70 和 86条件格式化列,但仍显示为表格。.在示例中,我看到 df 的其余部分被设为零并且只有 1 列被格式化,或者整个数据框都被格式化了

有人可以帮忙吗

最佳答案

您还可以将每列缩放到最小值为零和最大值为 1,将其传递给热图,并使用原始值进行注释。

scaled_df = (df - df.min(axis=0))/(df.max(axis=0) - df.min(axis=0))
sns.heatmap(scaled_df, annot=df, fmt="d", linewidths=.5, cmap="RdYlGn")

请注意,您可能希望使用 cbar=False 删除颜色栏,因为该解决方案必然要求每列的比例不同。

或者,可以使用 sklearn.preprocessing.minmax_scale 代替手动缩放。

from sklearn.preprocessing import minmax_scale

scaled_df = minmax_scale(df)
sns.heatmap(scaled_df, annot=df, fmt="d", linewidths=.5, cmap="RdYlGn")

关于python - 在 pandas 数据框中按列应用 seaborn 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44017205/

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