Skip to main content
 首页 » 编程设计

python之从列表中分配重复值的列

2025年05月04日11qlqwjy

假设我有一个数据列表。对于 eg [1,2,3,4,5],我的 DataFrame 中有 1704 行。现在我只想添加具有此值的新列,但它应该重复到最后一行,如下所示:

1   
2   
3   
4   
5   
1   
2   
3   
4   
5   
..   

以此类推,直到最后一条记录。我试过 df['New Column']=pd.Series([1,2,3,4,5]) 但它只在前 5 行插入记录,但我希望重复这个系列直到最后。我在 SO 上提到了很多帖子,但没有找到任何相关的帖子。我是 Pandas 框架的新手。请在这件事上给予我帮助。提前致谢。

请您参考如下方法:

下面,我提出了两个解决方案,它们也可以处理 df 的长度不是列表长度的完美倍数的情况。

np.tile

v = pd.Series([1, 2, 3, 4, 5]) 
df['NewCol'] = np.tile(v, len(df) // len(v) + 1)[:len(df)]   

cycle 和 islice

采用 itertools 的纯 Python 方法。

from itertools import cycle, islice 
 
it = cycle([1, 2, 3, 4, 5]) 
df['NewCol'] = list(islice(it, len(df)))