填充嵌套字典

时间:2017-04-12 03:34:05

标签: python pandas dictionary

无法填充嵌套字典并保留以前填充的密钥。看这个例子:

fulldict={}
keys=['key1', 'key2', 'key3']

for key in keys:
    for i in xrange(3):
        x1 = np.random.randn(10)
        y1 = np.random.randn(10)
        fulldict[key] = {i:pd.DataFrame({'x1':x1, 'y1': y1})}

我的意图是fulldict['key1']应该包含3个字典,密钥为0,1,2。但只存储了最后一个键(2)。

任何赞赏的建议

2 个答案:

答案 0 :(得分:1)

您每次都会重新分配fulldict[key],因此请初始化fulldict[key] = {}并使用i作为关键字:

for key in keys:
    fulldict[key] = {}
    for i in xrange(3):
        x1 = np.random.randn(10)
        y1 = np.random.randn(10)
        fulldict[key][i] = pd.DataFrame({'x1':x1, 'y1': y1})

答案 1 :(得分:0)

或者你可以诉诸内部词典的dict理解(保存一些查找):

import numpy as np

fulldict={}
keys=['key1', 'key2', 'key3']

draw = np.random.randn
for key in keys:
    fulldict[key] = {i: pd.DataFrame({'x1': draw(10), 'y1': draw(10)})
                     for i in xrange(3)}