【发布时间】:2019-12-30 23:08:39
【问题描述】:
我是 Python 新手,正在为 X 次模型运行初始化参数。我需要从 N 个字典中创建所有可能的组合,每个字典都有嵌套数据。
我知道我需要以某种方式使用 itertools.product,但我不知道如何浏览字典。也许我什至不应该使用字典,而是使用 json 或其他东西。我也知道这会产生很多参数/运行。
编辑:从评论中添加了澄清。 我想创建一个带有 n 个字典的函数---例如。 def func(dict*) ---- 作为输入,并在所有字典中创建所有这些单独的键/值对的所有可能组合,返回一个包含所有组合的大 DF。
我的数据如下所示:
字典 1{
"chisel": [
{"type": "chisel"},
{"depth": [152, 178, 203]},
{"residue incorporation": [0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
{"timing": ["10-nov", "10-apr"]},
],
"disc": [
{"type": "disc"},
{"depth": [127, 152, 178, 203]},
{"residue incorporation": [0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]},
{"timing": ["10-nov", "10-apr"]},
],
"no_till": [
{"type": "user_defined"},
{"depth": [0]},
{"residue incorporation": [0.0]},
{"timing": ["10-apr"]},
],
}
字典 2
{
"nh4_n":
{
"kg/ha":[110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225],
"fertilize_on":"10-apr"
},
"urea_n":
{
"kg/ha":[110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225],
"fertilize_on":"10-apr"
}
}
字典 3
{
"maize": {
"sow_crop": 'maize',
"cultivar": ['B_105', 'B_110'],
"planting_dates": [
'20-apr', '27-apr', '4-may', '11-may', '18-may', '25-may', '1-jun', '8-jun', '15-jun'],
"sowing_density": [8],
"sowing_depth": [51],
"harvest": ['maize'],
}
}
例如,对于上面的三个字典,我会以某种方式使用字典 'chisel' 和 itertools.product 字典 2 中的每个嵌套字典(例如 'nh4_n')和字典 3 中的每个嵌套字典(在此案例只有一个,所以每个不同的品种、种植日期等)。我还想将每个键值对中的键用作 DF 列标题。
【问题讨论】:
标签: python python-3.x pandas