我有包含以下列的数据帧:
ID A1 B1 C1 A2 B2 C2 A3 B3 C3
AA 1 3 6 4 0 6
BB 5 5 4 6 7 9
CC 5 5 5
我想创建一个名为Z的新列,它接受每一行,将它们分组到一个JSON记录列表中,并将该列重命名为它们的键.在构造JSON列之后,我想删除所有列,只保留Z和ID.
以下是所需的输出:
ID Z
AA [{"A":1, "B":3,"C":6},{"A":4, "B":0,"C":6}]
BB [{"A":5, "B":5,"C":4},{"A":6, "B":7,"C":9}]
CC [{"A":5, "B":5,"C":5}]
这是我目前的try :
df2 = df.groupby(['ID']).apply(lambda x: x[['A1', 'B1', 'C1',
'A2', 'B2', 'C2', 'A3', 'B3', 'C3']].to_dict('records')).to_frame('Z').reset_index()
问题是我不能重命名这些列,这样就只保留字母,删除数字,就像上面的例子一样.与在我的列表中创建两个对象相反,运行上面的代码也不会将每组3个对象分隔为一个对象.如果可能的话,我想在Pandas 身上做到这一点.任何指导都是非常感谢的.