Gea*_*ric 3 python matplotlib pandas seaborn
我想从 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和B作为 X 轴和 Y 轴,颜色表示对应的C值。
我试图用Seaborn.heatmap,但该函数接受方的数据集,这意味着我应该斌数据第一。
有没有办法直接从 DataFrame 生成我想要的东西?如果没有,我如何将 DataFrame 放入二维网格中?
我知道pandas.cut可以做到这一点,但它似乎只能根据一列进行一次切割。当然,我可以编写乏味的函数来管道“两次切割”,但我想知道是否有一些简单的方法来完成这项任务。
像这样的东西?
>>> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1610 次 |
| 最近记录: |