熊猫数据框在更改一列时每行重复 5 次

Posted

技术标签:

【中文标题】熊猫数据框在更改一列时每行重复 5 次【英文标题】:pandas dataframe duplicate each row 5 times while changing one column 【发布时间】:2021-01-19 14:04:39 【问题描述】:

我有数据框:

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】:

您可以在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

【讨论】:

以上是关于熊猫数据框在更改一列时每行重复 5 次的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏显示序列号的熊猫数据框中的第一列[重复]

如何将自定义函数应用于每行的熊猫数据框[重复]

插入另一列时重复 AUTO_INCREMENT Id?

熊猫不显示第一列[重复]

如何在每个组中估算熊猫数据框中的一列[重复]

熊猫通过根据另一列的值添加列级别来重塑数据框[重复]