我有这样的数据
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
合并的方法
发布于 2017-09-20 06:28:18
您可以将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]
https://stackoverflow.com/questions/46314708
复制相似问题