【问题标题】:bin DataFrame in pandas for heatmap熊猫中的 bin DataFrame 用于热图
【发布时间】:2016-05-03 19:25:31
【问题描述】:

我想从 Pandas 的 DataFrame 中绘制热图。数据看起来像

df = pd.DataFrame({"A": np.random.random(100), "B": np.random.random(100), "C": np.random.random(100)})

为了展示C如何随着A和B的变化而变化,我想根据A和B对数据进行分箱,计算每个分箱中C的平均值,最终热图有A em>和B分别为X轴和Y轴,颜色表示对应的C值。

我尝试使用Seaborn.heatmap,但该函数接受方形数据集,这意味着我应该先bin数据。

有没有办法直接从 DataFrame 生成我想要的内容? 如果没有,我如何将 DataFrame 放入二维网格中?

我知道pandas.cut 可以做到这一点,但似乎只能根据一列进行一次剪切。当然,我可以编写繁琐的函数来管道“两次切割”,但我想知道是否有一些简单的方法来完成这项任务。

散点图可以给出类似的结果,但我想要热图,比如this,而不是this。

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

    这样的?

    >>> df.groupby([pd.cut(df.A, 3), pd.cut(df.B, 3)]).C.mean().unstack()
    B                  (0.00223, 0.335]  (0.335, 0.666]  (0.666, 0.998]
    A                                                                  
    (0.000763, 0.334]          0.579832        0.454004        0.349740
    (0.334, 0.667]             0.587145        0.677880        0.559560
    (0.667, 1]                 0.566409        0.496061        0.420541
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2017-09-05
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多