#python #pandas #data-science #data-munging
#python #pandas #наука о данных #сбор данных
Вопрос:
У меня есть фрейм данных:
vid_fn V1 V2 V3
a.avi 1 4 5
b.avi 7 8 1
Я хочу изменить дублирование каждой строки 5 раз при изменении первого столбца:
frame_fn V1 V2 V3
a1.jpg 1 4 5
a2.jpg 1 4 5
a3.jpg 1 4 5
a4.jpg 1 4 5
a5.jpg 1 4 5
b1.jpg 7 8 1
b2.jpg 7 8 1
b3.jpg 7 8 1
b4.jpg 7 8 1
b5.jpg 7 8 1
5 значений генерируются внешней функцией, поэтому при вызове
my_func(a.avi)
Я получаю:
[a1.jpg, a2.jpg, a3.jpg, a4.jpg, a5.jpg]
Каков наилучший способ сделать это?
Ответ №1:
Вы можете map
выполнить функцию my_func
поверх vid_fn
фрейма explode
данных на vid_fn
:
df.assign(vid_fn=df['vid_fn'].map(my_func)).explode('vid_fn')
.rename(columns={'vid_fn': 'frame_fn'}).reset_index(drop=True)
frame_fn V1 V2 V3
0 a1.avi 1 4 5
1 a2.avi 1 4 5
2 a3.avi 1 4 5
3 a4.avi 1 4 5
4 a5.avi 1 4 5
5 b1.avi 7 8 1
6 b2.avi 7 8 1
7 b3.avi 7 8 1
8 b4.avi 7 8 1
9 b5.avi 7 8 1