Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算dict值的pearson p值时遇到问题_Python_Pandas_Dictionary_Pearson - Fatal编程技术网

Python 计算dict值的pearson p值时遇到问题

Python 计算dict值的pearson p值时遇到问题,python,pandas,dictionary,pearson,Python,Pandas,Dictionary,Pearson,我想用for循环计算两个字典值的pearson p值。 字典表示两个数据帧的数据,其中一个有一些变化。 字典包含关于列名称、键和每列的直方图值的信息。基本上我想计算这两个字典中每列的p值 这两本词典的结构如下: {'columnname1': {'keys': [0, 46.72, 50], 'values': [41, 13, 23, 21...0, 0, 1]}, 'columnname2': {'keys': [0, 20, 50], 'values': [21, 43, 25, 2...

我想用for循环计算两个字典值的pearson p值。 字典表示两个数据帧的数据,其中一个有一些变化。 字典包含关于列名称、键和每列的直方图值的信息。基本上我想计算这两个字典中每列的p值

这两本词典的结构如下:

{'columnname1': {'keys': [0, 46.72, 50], 'values': [41, 13, 23, 21...0, 0, 1]},
'columnname2': {'keys': [0, 20, 50], 'values': [21, 43, 25, 2...0, 3, 15},...}
为了计算每列的p值,我尝试执行下一个函数:

定义历史记录1,历史记录2: hist={} 对于hist_1.keys中的第1列: 对于hist_1.keys中的第2列: hist[column1]={} hist[column1]['keys']=hist_2[column2]['keys'] hist[column1]['pearson']=pearsonrhist_1[column1]['values'],hist_2[column2]['values'] 返回历史记录 测试=石脑石,两个 hist[column]['keys']工作正常,但是hist[column]['pearson']=pearsonrhist_2[column]['values'],hist_1[column]['values']会发出keyrerror消息

KeyError: 'values'  

我不知道我错过了什么。非常感谢您的帮助。

好吧,现在原来的答案已经过时了。 在hist输出中需要哪些键? 这可能是错误的;你想让hist归还什么

for column1 in hist_1.keys():
    for column2 in hist_2.keys():
        hist[(column1, column2)] = {}
        hist[(column1, column2)]['keys'] = hist_2[column2]['keys']
        hist[(column1, column2)]['pearson'] = pearsonr(hist_2[column2]['values'], hist_1[column1]['values'])

不清楚您想要达到什么目的:

@AAA已修复,谢谢。编辑时没有注意到你可以发布你是如何称呼ChiTest的吗?@Ison,你可能需要添加一个。例如,“ShortData”是如何产生的?。你放在这里的代码可以用来调试这个问题吗?@AAA。ShortData==键。在邮局把它修好了。IRL一个dict使用短数据名和另一个键。两个都是钥匙。因此,是的,代码可以用于gebugging@Ison上面的代码工作正常:请参阅@Ison:在两个循环中仍然使用列;那是行不通的;列将始终是内部循环中hist_2的键,但不是hist_1的键