2012-03-20 24 views
1

我在批處理中運行每日模擬:我做365個模擬來獲得全年的結果。每次運行後,我想從結果中提取一些數組,並將它們添加到pandas.DataFrame中以供稍後分析。構建由不同塊組成的pandas.DataFrame的最佳方法

我有一個粗略的模型(做一個優化)和一個更精確的後期模擬模型,所以我可以從兩個來源獲得相同的變量。如果後仿真完成,結果可能會覆蓋優化結果。
爲了使其更加複雜,優化模型具有較小的輸出間隔,取決於離散化設置,但最終分析將在後模擬的較大間隔中發生)。

構建此DataFrame的最佳方法是什麼?

這是我第一次appraoch:

  1. 創建一個空的DataFramedf全年,具有DateRange指數具有較大的後模擬間隔(= 15分鐘)
  2. 1天做優化==>與DateRange作爲索引創建臨時df_temp具有較小間隔
  3. 下采樣這個DataFrame至15分鐘所描述here
  4. 更新dfdf_temp(在df行仍然是空的,除了前面跑的最後一排,所以我必須採取df_temp[1:]
  5. 的同一天做模擬==>創建臨時df_temp2與間隔15分鐘=
  6. df_temp2

我應該在步驟4中使用哪種方法)和6)在覆蓋所述df相應的行?或者從一開始就有更好的方法? 謝謝, 羅埃爾

回答

1

我覺得用DataFrame.combine_first可能是要走的路,但根據數據的規模,它可能是更有益的能有像,只是在修改特定行「更新」的方法現有的DataFrame。 combine_first更爲一般,並且可能導致結果的大小與任一輸入的大小不同(因爲索引將聯合在一起)。

https://github.com/pydata/pandas/issues/961

+0

是的,的確combine_first工作得很好,只要你'df_temp'調用它。我實例化沒有索引的空DataFrame。謝謝你的幫助。 – saroele 2012-03-26 22:20:51