Python 计算dict值的pearson p值时遇到问题
我想用for循环计算两个字典值的pearson p值。 字典表示两个数据帧的数据,其中一个有一些变化。 字典包含关于列名称、键和每列的直方图值的信息。基本上我想计算这两个字典中每列的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...
{'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的键