如何在不预先定义行数的情况下创建数据框

时间:2019-11-02 01:09:27

标签: python pandas dataframe

我在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)

我想附加列,而不是附加行,该怎么办?

0 个答案:

没有答案