Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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_Pandas_Dataframe - Fatal编程技术网

Python:嵌套字典

Python:嵌套字典,python,pandas,dataframe,Python,Pandas,Dataframe,我已经创建了DataFrame,请检查下面的代码段 data = {'mapid': [101,102], 'mapname': ['xyz','xyy'], 'xaxis' : [41,42], 'yaxis' : [42,32] } df = pd.DataFrame(data, columns = ['mapid', 'mapname','xaxis','yaxis'])``` Output of Data

我已经创建了DataFrame,请检查下面的代码段

data = {'mapid': [101,102],
        'mapname': ['xyz','xyy'],
        'xaxis' : [41,42],
        'yaxis' : [42,32]
        }
        
df = pd.DataFrame(data, columns = ['mapid', 'mapname','xaxis','yaxis'])```

Output of Dataframe.

``print(df)

mapid mapname  xaxis  yaxis
101     xyz     41     42
102     xyy     42     32
这里我只想从这个数据帧创建嵌套字典

预期产量

{'101':{'mapname':'xyz'
            'data' : ['xaxis' : 41,'yaxis':42]}}

我尝试了下面的代码,得到了预期的输出,但我仍然无法理解。请帮帮我

#Tried Snippet
**code**

print({n: grp.loc[n].to_dict('index')for n, grp in df.set_index(['mapid', 'mapname']).groupby(level='mapid')})

**output**

{101: {'xyz': {'xaxis': 41, 'yaxis': 42}}, 102: {'xyy': {'xaxis': 42, 'yaxis': 32}}}

**code**

print({k:f.groupby('mapname')['xaxis'].apply(list).to_dict() for k, f in df.groupby('mapid')})

**output**

{101: {'xyz': [41]}, 102: {'xyy': [42]}}

您不能有
['xaxis':41,'yaxis':42]
,因为它必须是字典。我想你是说
{“101”:{“mapname”:“xyz”,“data”:{“xaxis”:41,“yaxis”:42}}}

可能不是最好的解决方案,但是

{i:{"mapname": j,"data":k} for (i,j),k in df.set_index(["mapid","mapname"]).to_dict(orient="index").items()}

似乎有效

请不要发布图片。将所有内容粘贴为文本。嗨@MayankPorwal,添加了文本。请现在检查这是否回答了您的问题?不@Stefan,请检查我的预期输出。