У меня есть датафрейм ниже, где seq_name
- это имя видео, pedestrian_id
- это имя пешехода в этом видео, а frame_no
- это кадры, которые содержат этого пешехода в видео. Таким образом, для примера ниже, у меня есть 2 видео 0001
и 0002
и 3 всего пешехода.
Я пытаюсь сгруппировать их, чтобы присвоить им global_id
на основе этой информации, чтобы каждому уникальному пешеходу был присвоен идентификатор от 1 до общего числа пешеходов.
seq_name label pedestrian_id frame_no global_id
0 0001 crossing 0001 0001.png -1
1 0001 crossing 0001 0002.png -1
2 0001 crossing 0001 0003.png -1
3 0001 crossing 0001 0004.png -1
4 0001 crossing 0001 0005.png -1
5 0001 crossing 0001 0006.png -1
6 0001 crossing 0001 0007.png -1
7 0001 crossing 0001 0008.png -1
8 0001 crossing 0001 0009.png -1
9 0001 crossing 0001 0010.png -1
10 0001 crossing 0002 0001.png -1
11 0001 crossing 0002 0002.png -1
12 0001 crossing 0002 0003.png -1
13 0001 crossing 0002 0004.png -1
14 0001 crossing 0002 0005.png -1
15 0001 crossing 0002 0006.png -1
16 0001 crossing 0002 0007.png -1
17 0001 crossing 0002 0008.png -1
18 0001 crossing 0002 0009.png -1
19 0001 crossing 0002 0010.png -1
20 0002 crossing 0001 0001.png -1
21 0002 crossing 0001 0002.png -1
22 0002 crossing 0001 0003.png -1
23 0002 crossing 0001 0004.png -1
24 0002 crossing 0001 0005.png -1
25 0002 crossing 0001 0006.png -1
26 0002 crossing 0001 0007.png -1
27 0002 crossing 0001 0008.png -1
28 0002 crossing 0001 0009.png -1
29 0002 crossing 0001 0010.png -1
Таким образом, итоговый кадр данных должен выглядеть следующим образом
seq_name label pedestrian_id frame_no global_id
0 0001 crossing 0001 0001.png 1
1 0001 crossing 0001 0002.png 1
2 0001 crossing 0001 0003.png 1
3 0001 crossing 0001 0004.png 1
4 0001 crossing 0001 0005.png 1
5 0001 crossing 0001 0006.png 1
6 0001 crossing 0001 0007.png 1
7 0001 crossing 0001 0008.png 1
8 0001 crossing 0001 0009.png 1
9 0001 crossing 0001 0010.png 1
10 0001 crossing 0002 0001.png 2
11 0001 crossing 0002 0002.png 2
12 0001 crossing 0002 0003.png 2
13 0001 crossing 0002 0004.png 2
14 0001 crossing 0002 0005.png 2
15 0001 crossing 0002 0006.png 2
16 0001 crossing 0002 0007.png 2
17 0001 crossing 0002 0008.png 2
18 0001 crossing 0002 0009.png 2
19 0001 crossing 0002 0010.png 2
20 0002 crossing 0001 0001.png 3
21 0002 crossing 0001 0002.png 3
22 0002 crossing 0001 0003.png 3
23 0002 crossing 0001 0004.png 3
24 0002 crossing 0001 0005.png 3
25 0002 crossing 0001 0006.png 3
26 0002 crossing 0001 0007.png 3
27 0002 crossing 0001 0008.png 3
28 0002 crossing 0001 0009.png 3
29 0002 crossing 0001 0010.png 3
Выглядит очень просто, но я новичок в пандах и у меня много проблем. Единственное, что я сделал, это сгруппировал их по seq_name
и pedestrian_id
перед добавлением нового столбца. Но когда я печатал данные, они больше не выглядели так, как показано выше, а также выглядели так, будто global_id был добавлен в новую строку вместо нового столбца. Хотелось бы помочь.
df = df.groupby(['seq_name','pedestrian_id']).agg(lambda x: x.tolist())
df["global_id"] = range(1, len(df)+1)