【问题标题】:How to transform a pandas dataframe into a heatmap compatible dataframe?如何将熊猫数据框转换为热图兼容的数据框?
【发布时间】:2016-08-03 07:43:18
【问题描述】:

我有一个看起来像这样的 pandas 数据框:

  x_specie   y_species         r_value        irrelevant 
0    name1    name2    0.46042854769889    1.08625581318480
1    name3    name4    0.08520026289205    0.31828185948920
2    name5    name6    0.59751876928376    0.03611201620948
3    name7    name8    0.21827455728522    1.28464913995526
4    name9    name10    0.03241820474363    0.69957843027741

可以通过以下方式生成类似的东西:

Index= ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
Cols = ['A', 'B', 'C', 'D']
df = DataFrame(abs(np.random.randn(5, 4)), index=Index, columns=Cols)

本质上,我想使用 matplotlibs ax.pcolor() 制作 r_value 列的热图,但我需要先将这些数据转换为我认为是这样的适当格式:

     name2     name4     name6    name8    name10
name1 r_value1 ...       ...               ...
name3 ...      ...
name5                    ...
name7                             ...
name9 ...                                  ...

使用 r_values 在正确的位置填充表格(请注意,尽管上面的虚拟数据并未涵盖我的实际数据所涵盖的所有潜在组合)。

最简单的方法是什么?提前致谢

【问题讨论】:

  • 对不起,你在df.pivot(index='x_specie', columns = 'y_species', values='r_value')之后?
  • 正是我所追求的。似乎熊猫已经想到了一切......谢谢!

标签: python pandas matplotlib heatmap


【解决方案1】:

您可以使用pivot_tablefillna 获取x 和y 物种的所有组合(用0 填充NaN)。

import matplotlib.pyplot as plt
import pandas as pd

pivoted_table = df.pivot(index='x_specie', columns='y_species', values='r_value')
pivoted_table.fillna(0, inplace=True)
plt.pcolor(pivoted_table.values, cmap=plt.cm.Reds)
plt.show()

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2013-09-05
    • 2023-03-18
    • 2019-01-18
    • 2021-08-21
    相关资源
    最近更新 更多