Python 如何创建字典?
我需要将代码的结果绘制在带有子图的直方图中:Python 如何创建字典?,python,Python,我需要将代码的结果绘制在带有子图的直方图中: for key, val in plots_train.items(): print(key) count += 1 plt.title('Source : {}'.format(key) , fontsize=9) plt.subplot(nsources,1,count) plt.xlabel('Timestamp', fontsize=5) plt.ylabel('Network Counter'
for key, val in plots_train.items():
print(key)
count += 1
plt.title('Source : {}'.format(key) , fontsize=9)
plt.subplot(nsources,1,count)
plt.xlabel('Timestamp', fontsize=5)
plt.ylabel('Network Counter', fontsize=5)
X=[]
Y=[]
X_max = 0
for train_key,train_val in plots_train[key].items():
X.extend(train_val)
Y.extend(range(1,len(train_val)+1))
results = sm.OLS(Y, sm.add_constant(X)).fit()
print('params('+str(key)+','+str(train_key)+') = '+str(results.params))
这是打印的结果:
key: 02141592cc00000003
params(02141592cc00000003,02141592cc00000005) = [6.46004216e-10]
params(02141592cc00000003,02141592cc00000001) = [4.17321446e-19 6.46004215e-10]
params(02141592cc00000003,02141592cc00000006) = [4.17321444e-19 6.46004214e-10]
params(02141592cc00000003,02141592cc00000003) = [8.80603595e-17 1.36315765e-07]
我需要钥匙02141592C00000003,以便:
{02141592cc00000003:{02141592cc00000005:[6.46004216e-10],02141592cc00000006:[4.17321444e-19 ],02141592cc00000003:[8.80603595e-17]}
然后我想把它们画成柱状图 要获得您在问题中提到的输出,您可以从定义一个空字典开始:
plot_dict = {}
# print(plot_dict)
# {}
在第一个for循环和进入第二个for循环之前,添加以下内容:
plot_dict[key] = {}
# print(plot_dict[key])
# {02141592cc00000003: {}}
然后在第二个for循环中,在获得结果后:
plot_dict[key][train_key] = results.params
# print(plot_dict[key][train_key]
# {02141592cc00000003: {02141592cc00000005: [6.46004216e-10]}}
希望这能有所帮助。如果没有数据和其他代码,我们无法运行您的代码。请阅读@Bazingaa我已经编辑了我的问题;我无法放置数据,因为我有一个巨大的数据集。我的问题只与我在那里显示的数据有关。非常感谢,但它只给了我这个错误
KeyError:'02141592C00000001'
您能指定给出错误的行吗?plot\u dict[key][train\u key]=结果.params
例如,在我有钥匙的示例中,02141592C00000003
必须有三个不同的序列号钥匙和三个不同的结果.params。所以,密钥是重复的,我看到密钥02141592C00000003
将被复制。这就是为什么我使用嵌套词典,即词典中的词典。