我有一些季度级别的金融交易数据,所以这是一个非常大的数据集。我现在想要将以下值添加到反复重复的新列中:
USPS.MEDIAMAIL
该列应该如下所示:
[-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12]
所以基本上只是那个列表一遍又一遍地重复,直到我的Dataframe的最后一行。我希望这个问题足够清楚。
答案 0 :(得分:3)
试试这个:
N = len(df)
df['A'] = pd.Series(np.tile(lst, N//len(lst))).iloc[:N]
答案 1 :(得分:2)
itertools.cycle
将无限期地重复迭代器,而itertools.islice
仅占用前导部分。
pd.Series(list(itertools.islice(itertools.cycle(range(-12,13)), len(df))))
答案 2 :(得分:2)
使用numpy
place
a=np.zeros(len(data_file))
np.place(a,a>=0,np.array([1,2]))
a
Out[526]: array([1., 2., 1., 2.])