我有一个结构如下的长嵌套字典,如何将其加载到Pandas数据框中? Feed
,Spindle Speed
和Tool
的子键始终保持相同,但是位于上方的两个级别(Heading
,N1
等和{{1 }},4001
等在整个字典中都是唯一的,或者至少是唯一的。
我知道这样的事情:
4002
但是这看起来像一个数据透视表,在这里我更喜欢一个带有冗余信息(第pd.DataFrame.from_dict({(i,j): dictionary[i][j]
for i in dictionary.keys()
for j in dictionary[i].keys()},
orient='index')
条)的数据框来遍历整列。
4001
理想情况下,数据框应如下所示:
{
"4001": {
"Heading": {
"Feed": [],
"Spindle Speed": [],
"Tool": []
},
"N1": {
"Feed": [],
"Spindle Speed": [],
"Tool": [
"0800"
]
},
"N10 ": {
"Feed": [
0.01,
0.0006,
0.0001,
0.0006,
0.0001,
0.0006,
0.0002,
0.02,
0.0004
],
"Spindle Speed": [
"M3S2630"
],
"Tool": [
"1616"
]
}
},
"4002": {
"Heading": {
"Feed": [],
"Spindle Speed": [],
"Tool": []
},
"N1": {
"Feed": [],
"Spindle Speed": [],
"Tool": [
"9900"
]
},
"N10": {
"Feed": [
0.01,
0.001,
0.0004,
0.001,
0.005
],
"Spindle Speed": [],
"Tool": [
"3838"
]
}
},
"4003": {...
...
...
答案 0 :(得分:1)
在导入熊猫后将以下代码行配置为将数据帧配置为“稀疏”:
str(data)
来自pandas docs:
选项:display.multi_sparse
默认值:True
功能:“稀疏化” MultiIndex显示(不显示组中外部级别的重复元素)
使用您提供的前两个分组进行输出:
答案 1 :(得分:1)
您快到了。您只需要重置multi_index并提供正确的列名即可:
pd.DataFrame.from_dict({(i,j): dictionary[i][j]
for i in dictionary.keys()
for j in dictionary[i].keys()},
orient='index').reset_index().rename(
{'level_0': 'Program', 'level_1': 'Operation Number'}, axis=1)