我使用pandasnumpy个库来计算两个简单列表中的pearson correlation个.以下代码的输出是相关矩阵:

import numpy as np
import pandas as pd

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([2, 1, 4, 5, 8, 12, 18, 25, 96, 48])
x, y = pd.Series(x), pd.Series(y)
xy = pd.DataFrame({'dist-values': x, 'uptime-values': y})
matrix = xy.corr(method="pearson")

在输出上使用.unstack().to_dict()函数后,我们可以得到以下格式的字典:

result = matrix.unstack().to_dict()
# {('dist-values', 'dist-values'): 1.0, 
#   ('dist-values', 'uptime-values'): 0.7586402890911869, 
#   ('uptime-values', 'dist-values'): 0.7586402890911869, 
#   ('uptime-values', 'uptime-values'): 1.0}

但我需要将其转换为字典列表,输出应该如下所示:

#[  {'f1': 'dist-values', 'f2': 'dist-values', 'value': '1.0'}, 
#   {'f1': 'dist-values', 'f2': 'uptime-values', 'value': '0.7586402890911869'}, 
#   {'f1': 'uptime-values', 'f2': 'dist-values', 'value': '0.7586402890911869'}, 
#   {'f1': 'uptime-values', 'f2': 'uptime-values', 'value': '1.0'}
# ]

做这件事的最佳有效方式是什么?

推荐答案

关于:

result = (matrix.unstack().rename_axis(['f1', 'f2'])
                .reset_index(name='value').to_dict('records')
          )

输出:

[{'f1': 'dist-values', 'f2': 'dist-values', 'value': 1.0},
 {'f1': 'dist-values', 'f2': 'uptime-values', 'value': 0.7586402890911869},
 {'f1': 'uptime-values', 'f2': 'dist-values', 'value': 0.7586402890911869},
 {'f1': 'uptime-values', 'f2': 'uptime-values', 'value': 1.0}]

Python相关问答推荐

如何从. text中进行pip安装跳过无法访问的库

Odoo onchange for invoice_Status of sale事件.订单未触发

为什么我的(工作)代码(生成交互式情节)在将其放入函数中时不再工作?

如何获取Django REST框架中序列化器内部的外卡属性?

使用多个性能指标执行循环特征消除

在for循环中仅执行一次此操作

如果索引不存在,pandas系列将通过索引获取值,并填充值

Pandas 第二小值有条件

线性模型PanelOLS和statmodels OLS之间的区别

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

@Property方法上的inspect.getmembers出现意外行为,引发异常

Pandas 滚动最接近的价值

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

有症状地 destruct 了Python中的regex?

发生异常:TclMessage命令名称无效.!listbox"

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

部分视图的DataFrame

在ubuntu上安装dlib时出错

如何在UserSerializer中添加显式字段?

在Python中从嵌套的for循环中获取插值