Skip to main content
 首页 » 编程设计

python之在 Pandas 中创建一个包含周期性重复值的列

2025年05月04日13zhenyulu

我有一个带有一列的示例数据框 df:

     Cost  
      30 
      49 
      98 
      10 
      37 
      20 
      10 
      48 
      70 
      20 
      30 
      40 
      50 
      29 
      90 
      39 
      30 
      29 
      50 
      40 

和一个列表:id_list = ["A","B","C","D"] 这是一个包含 4 种不同 ID 类型的列表。我想在数据框中创建一个新列,其中前 5 个成本值为“A”,接下来的 5 个成本值为“B”....,最后 5 个成本值为“D”。因此,我想重复 id_list 的元素 5 次,我的新 df 将是这样的:

     Cost    ID 
 
      30     A 
      49     A 
      98     A 
      10     A 
      37     A 
      20     B 
      10     B 
      48     B 
      70     B 
      20     B 
      30     C 
      40     C 
      50     C 
      29     C 
      90     C 
      39     D 
      30     D 
      29     D 
      50     D 
      40     D 

我的实际数据框有很多行,实际的 id_list 有很多元素。 行号是 5 的倍数,因此最终数据框中将有一个精确的填充。 一般来说,我知道如何在 Pandas 数据框中添加具有特定值的列 但我不知道如何使用重复值来做到这一点。 你能建议我如何在 python 中做到这一点吗? 在此先感谢您的帮助

请您参考如下方法:

numpy 有函数,repeat

df['New']=np.repeat(id_list,5) 
df 
Out[23]:  
    Cost New 
0     30   A 
1     49   A 
2     98   A 
3     10   A 
4     37   A 
5     20   B 
6     10   B 
7     48   B 
8     70   B 
9     20   B 
10    30   C 
11    40   C 
12    50   C 
13    29   C 
14    90   C 
15    39   D 
16    30   D 
17    29   D 
18    50   D 
19    40   D