Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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中使用嵌套字典——将两个数据集与公共';键';以及其他不同的变量_Python_Python 2.7_Dictionary - Fatal编程技术网

在Python中使用嵌套字典——将两个数据集与公共';键';以及其他不同的变量

在Python中使用嵌套字典——将两个数据集与公共';键';以及其他不同的变量,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我有两个带有县级数据的csv数据集。每个数据集通过FIPS代码标识县。我想创建一个嵌套的“主”字典,这样我就可以用识别FIPS代码调用它,它将返回该FIPS对应的“内部”字典,其中包含来自两个数据集的所有信息 我了解设置嵌套字典的一般方法,即: >>> d = {} >>> d['dict1'] = {} >>> d['dict1']['innerkey'] = 'value' >>> d {'dict1': {'inner

我有两个带有县级数据的csv数据集。每个数据集通过FIPS代码标识县。我想创建一个嵌套的“主”字典,这样我就可以用识别FIPS代码调用它,它将返回该FIPS对应的“内部”字典,其中包含来自两个数据集的所有信息

我了解设置嵌套字典的一般方法,即:

>>> d = {}
>>> d['dict1'] = {}
>>> d['dict1']['innerkey'] = 'value'
>>> d
{'dict1': {'innerkey': 'value'}}

但我不知道如何推广它,并从从两个独立的CSV读取的数据中填充它

假设您将主词典定义为:

master = {}
首先,迭代较小的数据集foo,以便可以使用键的FIPS代码填充主词典,并将其数据存储在
'foo'
键下:

for row in foo_csv_reader:
    fips_code = row[...] # Row storing FIPS code.
    inner_data = {}
    inner_data['foo'] = ... # Data from foo CSV.
    master[fips_code] = inner_data
for row in bar_csv_reader:
    fips_code = row[...] # Row storing FIPS code.
    if fips_code in master:
        inner_data = master[fips_code]
        inner_data['bar'] = ... # Data from bar CSV.
现在,在较大的数据集栏上进行迭代,以便可以使用从上一个数据集中遇到的匹配FIPS代码填充主词典,并将其数据存储在
'bar'
键下:

for row in foo_csv_reader:
    fips_code = row[...] # Row storing FIPS code.
    inner_data = {}
    inner_data['foo'] = ... # Data from foo CSV.
    master[fips_code] = inner_data
for row in bar_csv_reader:
    fips_code = row[...] # Row storing FIPS code.
    if fips_code in master:
        inner_data = master[fips_code]
        inner_data['bar'] = ... # Data from bar CSV.