我在python和pandas上还不是很先进。
我有一个函数,可以根据一种策略计算股票收益,然后将其作为数据框输出。例如,如果我要计算2017年至2019年的收益,则函数输出是2017年至2019年的收益,如果我要计算2010年至2019年的收益,则函数输出是2010年至2019年的收益。此函数计算一只股票的价格为时间。
现在,我有多只股票,我在for循环中使用了此功能,该循环遍历股票以获得其回报。我想将不同股票的所有收益都放在一个数据框中。因此,我正在考虑在循环之前预定义零数据帧,然后在循环中一次将返回值放入该数据帧。
我现在遇到的问题是,要事先知道返回数据帧中有多少行并不容易,因此我无法定义零数据帧中将在以后包含所有返回值的行(只知道列数为很容易知道股票数量),所以我想知道是否有办法将收益系列整体放入零数据框? (如逐列输入数据)?
希望我说的问题很清楚.....
非常感谢!
请不要建议我在此阶段不要使用循环....现在我将问题重新声明为: 在下面的代码中:
for k in ticker:
stock_price = dataprepare(start_date, end_date, k)
mask_end, mask_beg = freq(stock_price, trading_period)
signal_trade = singals(fast_window, slow_window, stock_price, mask_end)
a = basiccomponent(fast_window, slow_window, stock_price, mask_beg, mask_end, year, signal_trade, v)[2]
dataprepare,freq,singals和basiccomponent是自定义函数。 a是一个返回数据框,我想将每个循环中的所有'a'保存在一个数据框中,类似追加,但在每个循环后追加到列上,例如:
a.append(a)
我想附加列,而不是附加行,该怎么办?