如何将字典的字典展开成大字典的 Pandas DataFrame?

考虑以下 python3.x 中的字典字典


dict1 = {4: {4:25, 5:39, 3:42}, 5:{24:94, 252:49, 25:4, 55:923}}

我想把它展开成一个熊猫数据帧。似乎有两种选择:


df1 = pd.DataFrame.from_dict(dict1, orient='columns')


print(df1)

        4      5

3    42.0    NaN

4    25.0    NaN

5    39.0    NaN

24    NaN   94.0

25    NaN    4.0

55    NaN  923.0

252   NaN   49.0

其中列是主字典键4和“5”,行索引是子字典键,值是子字典值。


另一种选择是


df2 = pd.DataFrame.from_dict(dict1, orient='index')

print(df2)

    4     5     3     24    252  25     55 

4  25.0  39.0  42.0   NaN   NaN  NaN    NaN

5   NaN   NaN   NaN  94.0  49.0  4.0  923.0

其中列是内部“子字典”的键,行索引是主字典的键,值是子字典的键。


是否有一种标准方法可以让我们按如下方式展开 python 字典?


key inner_key values

4        3      42 

4        4      25

4        5      39

5        24     94

5        25     4

5        55     923

5        252    49

最好不要在使用后操作 DataFrame from_dict(),因为对于更大的 Python 字典,这可能会占用大量内存。


炎炎设计
浏览 262回答 2
2回答

慕桂英546537

pd.DataFrame([[i,j,user_dict[i][j] ] for i in user_dict.keys() for j in user_dict[i].keys()],columns=['key', 'inner_key', 'values'])输出:   key  inner_key   values0   4   4           251   4   5           392   4   3           423   5   24          944   5   252         495   5   25          46   5   55         923
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python