关于你的数据,
df = pd.DataFrame({'scene':[{"living":"0.515","kitchen":"0.297"}, {"kitchen":"0.401","study":"0.005"},
{"study":"0.913"}, {}, {"others":"0"}],
'id':[1, 2, 3 ,4,5], 's': ['a','b','c','d','e']})
df:
id s scene
0 1 a {'kitchen': '0.297', 'living': '0.515'}
1 2 b {'kitchen': '0.401', 'study': '0.005'}
2 3 c {'study': '0.913'}
3 4 d {}
4 5 e {'others': '0'}
有两种方法可以做到这一点,
>在一行中,您必须将除“场景”之外的所有列名称输入到set_index函数
df = df.set_index(['id', 's'])['scene'].apply(pd.Series).fillna(0).reset_index()
这将输出:
id s kitchen living study othe