我在將 df 轉換為 3 級嵌套字典時遇到問題,有沒有辦法在沒有循環每一行的丑陋函數的情況下做到這一點?類似于 .groupby .apply 的東西?輸入/DF:project,stage,error_code,countProject_1,stage_1,0,8Project_1,stage_1,1103,3Project_1,stage_2,0,4Project_1,stage_2,1103,2Project_2,stage_1,0,14Project_2,stage_1,1103,2Project_2,stage_1,1105,1Project_2,stage_2,0,5期望的輸出:[ 'Project_1': { 'stage_1': { '0': 8, '1103': 3 }, 'stage_2': { '0': 14, '1103': 2 } }, 'Project_2': { 'stage_1': { '0': 14, '1103': 2, '1105': 1 }, 'stage_2': { '0': 5, } }]
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
你可以用groupby和unstack
d=df.groupby(['project','stage']).\
apply(lambda x : dict(zip(x['error_code'],x['count']))).\
unstack(0).to_dict()
Out[12]:
{'Project_1': {'stage_1': {0: 8, 1103: 3}, 'stage_2': {0: 4, 1103: 2}},
'Project_2': {'stage_1': {0: 14, 1103: 2, 1105: 1}, 'stage_2': {0: 5}}}
添加回答
舉報
0/150
提交
取消