Python 如何使用相关数据帧中的位置值形成“JSON”?

Python 如何使用相关数据帧中的位置值形成“JSON”?,python,pandas,Python,Pandas,我有一个DataFrame,它看起来像下面的一个 A B C Timestamp 2019-01-12 00:00:00 43.73 28.95 25.31 2019-01-12 00:15:00 44.08 29.34 25.25 2019-01-12 00:30:00 44.39 29.59 25.12 2019-01-12 00:45:00 4

我有一个
DataFrame
,它看起来像下面的一个

                       A      B      C
Timestamp                               
2019-01-12 00:00:00  43.73  28.95  25.31
2019-01-12 00:15:00  44.08  29.34  25.25
2019-01-12 00:30:00  44.39  29.59  25.12
2019-01-12 00:45:00  44.34  29.48  24.96
2019-01-12 01:00:00  44.75  29.42  24.95
找到它的相关性后,我得到以下结果:

df.corr()

我希望结果显示在下面给出的json中,以便在UI中绘制热图

{
  "data": [
    [0,0,0.85],[0,1,0.93],[0,2,1],
    [1,0,0.75],[1,1,1],[1,2,0.92],
    [2,0,1],[2,2,0.75],[2,2,0.85],
  ],
  "category": ["A","B","C"]
}

如何获取位置值并由此形成Json列表

我认为首先需要通过使用
[::-1]
索引来更改行的顺序,然后在列表理解中使用
枚举
创建嵌套列表,最后通过此列表使用列名称创建dict:

df1 = df.corr().iloc[::-1]

L = [[a, b, y] for a, (_,x) in enumerate(df1.items()) for b, y in enumerate(x)]
d = { "data": L, "category": df.columns.tolist()}
print (d)
{
    'data': [
        [0, 0, -0.8845563092588891],
        [0, 1, 0.7799764515321312],
        [0, 2, 1.0],
        [1, 0, -0.6854920251297654],
        [1, 1, 1.0],
        [1, 2, 0.7799764515321312],
        [2, 0, 1.0],
        [2, 1, -0.6854920251297654],
        [2, 2, -0.8845563092588891]
    ],
    'category': ['A', 'B', 'C']
}

@Irfanuddin-yop,不确定是否需要
.iloc[::-1]
,但添加了它,因为需要输出。但也许有必要把它移除。它工作得很好,再次感谢!我还发现了另一种使用pandas.melt()的方法。我们只需要用索引重命名列并将其熔化。我将在下面的答案中分享代码。
df1 = df.corr().iloc[::-1]

L = [[a, b, y] for a, (_,x) in enumerate(df1.items()) for b, y in enumerate(x)]
d = { "data": L, "category": df.columns.tolist()}
print (d)
{
    'data': [
        [0, 0, -0.8845563092588891],
        [0, 1, 0.7799764515321312],
        [0, 2, 1.0],
        [1, 0, -0.6854920251297654],
        [1, 1, 1.0],
        [1, 2, 0.7799764515321312],
        [2, 0, 1.0],
        [2, 1, -0.6854920251297654],
        [2, 2, -0.8845563092588891]
    ],
    'category': ['A', 'B', 'C']
}