我的DF:
d = {'project_id': [19,20,19,20,19,20],
'task_id': [11,22,11,22,11,22],
"task": ["task_1","task_1","task_1","task_1","task_1","task_1"],
"username": ["tom","jery","tom","jery","tom","jery"],
"image_id":[101,202,303,404,505,606],
"frame":[0,0,9,8,11,11],
"label":['foo','foo','bar','xyz','bar','bar']}
df = pd.DataFrame(data=d)
所以我的df是长格式的,有一些重复的,只有image_id
是唯一的。我试着旋转我的df,用pd.pivot
和pd.merge
,用username
重新整形为宽格式。
我的代码:
pd.pivot(df, index=['task','frame','image_id'], columns = 'username', values='label')
我的输出:
我期望(或想要达到):
所以,正如你所看到的,我的输出中并不需要image_id
,只需要summary,即每帧中用户使用的标记。
1条答案
按热度按时间ljsrvy3e1#
您可以在
pivot
之后添加groupby.first
:或者将
pivot_table
与aggfunc='first'
一起使用:输出: