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']
}