【问题标题】:pandas dataframe duplicate each row 5 times while changing one column熊猫数据框在更改一列时每行重复 5 次
【发布时间】:2026-01-24 05:05:01
【问题描述】:

我有数据框:

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]

最好的方法是什么?

【问题讨论】:

    标签: python pandas data-science data-munging


    【解决方案1】:

    您可以在vid_fnmap 函数my_func 然后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
    

    【讨论】: