我有一个如下所示的数据框
op1 = pd.DataFrame({
'subject_id':[1,1,1,1,2,2,2,2],
'date' : ['1/1/2017','1/2/2017','1/1/2017','1/2/2017','1/11/2017','1/12/2017','1/11/2017','1/12/2017'],
'val' :[5,6,5,11,5,7,16,12],
'item_name':['P','P','F','F','P','P','F','F'],
'val_max':[11,13,15,16,21,22,24,25]
})
请注意,我已经引用了此post来修改我的代码
我想将其转换为找到maximum of **val_max** for each subject
。
这是我尝试过的。虽然可以正常工作并提供输出,但结构尚不准确
t1 = op1.groupby(['subject_id','item_name'])['val_max'].max().reset_index()
t1.set_index(['subject_id','item_name']).unstack().add_prefix('Max_').rename_axis(None).reset_index()
相反,我希望输出如下所示
请注意,列名是自定义的。我不想坚持使用prefix/suffix constraint