我有一个格式如下的json:
data = {
'Low': {
'2023.07.01': {"u": "mo", 'N': 1, 'O': 2, "PN": 22, "PO": 34},
'2023.07.02': {"u": "no", 'N': 1, 'O': 2, "PN": 22, "PO": 34}
},
'Medium': {
'2023.07.01': {"u": "no", 'N': 1, 'O': 2, "PN": 22, "PO": 34},
'2023.07.02': {"u": "mo", 'N': 1, 'O': 2, "PN": 22, "PO": 34}
},
'High': {
'2023.07.01': {"u": "no", 'N': 122, 'O': 2, "PN": 212, "PO": 334},
'2023.07.02': {"u": "mo", 'N': 13, 'O': 2, "PN": 2, "PO": 342}
}
}
我如何创建具有以下结构的多级数据框:
Date U Low Medium High
N PN O PN N PN O PN N PN O PN
我尝试了各种方法,例如
df.stack
和df.pivot
,但我无法获得我需要的确切格式。如有任何帮助,我们将不胜感激。
你可以这样做:
(df.stack().apply(pd.Series)
.set_index('u',append=True)
.stack().unstack(level=(1,-1))
)
输出:
Low Medium High Low
N O PN PO O PN PO New O PN PO New New
u
2023.07.01 mo 1.0 2.0 22.0 34.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
no NaN NaN NaN NaN 2.0 22.0 34.0 1.0 2.0 212.0 334.0 122.0 NaN
2023.07.02 mo NaN NaN NaN NaN 2.0 22.0 34.0 1.0 2.0 2.0 342.0 13.0 NaN
no NaN 2.0 22.0 34.0 NaN NaN NaN NaN NaN NaN NaN NaN 1.0