我有一个这样的数据框
id sid frame type
1 10 15 person
2 11 45 person
2 11 45 animal
3 13 75 person
4 14 45 person
我的目标是在此转换此数据框。
id sid frame type
1 10 15 person
2 11 45 [person, animal]
3 13 75 person
4 14 45 person
我正在寻找一种方法来合并type
列与相同的id, sid, frame
答案 0 :(得分:2)
您可以groupby
使用list
条件:
df = (df.groupby(['id','sid','frame'])['type']
.apply(lambda x: x.tolist() if len(x) > 1 else x.values[0])
.reset_index())
print (df)
id sid frame type
0 1 10 15 person
1 2 11 45 [person, animal]
2 3 13 75 person
3 4 14 45 person
如果所有值都应为list
s:
df = (df.groupby(['id','sid','frame'])['type']
.apply(list)
.reset_index())
print (df)
id sid frame type
0 1 10 15 [person]
1 2 11 45 [person, animal]
2 3 13 75 [person]
3 4 14 45 [person]