2015-04-07 59 views
0

我忙於一個項目,該項目需要在已從csv文件讀入的大量數據框上執行任務。這需要一次發生一行,一次發送一個數據幀。在多個數據框上執行操作

所以我的想法是,我從第一個數據框中選擇第一行,並使用該數據做一些事情。然後,我轉向第二個數據框的第一行,並再次對該數據做同樣的事情。一旦我經歷了每一個數據幀,然後我回到第一個數據幀並選擇第二行數據。我繼續這樣做,直到我經歷了每一個數據幀的每一行。

我將需要知道在任何時間點使用哪個數據幀。所以當我從df中選擇一行時,我還需要確定它是哪個df。

我的問題是用什麼數據結構來完成這個。我在想,如果我可以使用的字典:

dict_of_dataframes = {'abc' = df1, 'xyz' = df2} 

將有超過100 dataframes,並且每個數據幀可能有幾百/千行。

字典是一個很好的方式去完成這個嗎?更


的位澄清的要求:

每個數據幀是由含有歷史股票的CSV,即創建:

Date, Open, High, Low, Close, Volume 

沒有爲所有的股票一個CSV /數據幀。 csv/dataframe的每一行都有一天,可以追溯到幾年。

目標是對數據進行各種投資組合策略的回溯測試(注意:這不是測試一隻股票的策略,而是測試整個股票投資組合)。要做到這一點,必須沒有能力展望未來。換句話說,我需要每一天都要經歷一天的股票,然後轉移到第二天。

所以我不能僅僅完成一個數據幀,然後移動到下一個。我需要看看整個投資組合如何通過時間表現。

我希望有助於澄清?

+1

爲什麼你需要一次操作一行,有什麼約束?你可以考慮一個面板,但一個字典將正常工作 – EdChum

+0

我不熟悉面板,但會考慮它。一行一行的原因是,這是爲了對多個不同股票代碼的股票市場數據進行回溯測試。它將一次測試一天,一次測試一次。換句話說,它需要模擬整個每隻股票的時間流逝,而不僅僅是跳到一隻股票的末端,然後再做下一隻股票。如果你能建議更好的方法來做到這一點,我會很高興聽到它。謝謝。 – darkpool

+0

你必須充實你的問題的細節,但面板可能適合你想要的 – EdChum

回答

0

看起來您可以將所有文件放在一個數據框中,爲股票添加額外的字段,按日期和股票對其進行排序並遍歷行。我認爲這符合你的目的。

相關問題