2012-03-20 2 views
1

私は毎日のシミュレーションをバッチで実行しています.1年間の結果を得るために365回のシミュレーションを行います。毎回実行した後、結果からいくつかの配列を抽出し、後で分析のためにそれらをpandas.DataFrameに追加する必要があります。異なるチャンクで構成されたpandas.DataFrameを構築する最も良い方法

私はラフモデル(最適化を行う)とポストシミュレーションのためのより正確なモデルを持っているので、2つのソースから同じ変数を得ることができます。事後シミュレーションが完了した場合、結果は最適化結果を上書きすることがあります。
より複雑にするため、最適化モデルは離散化設定に応じて出力間隔が小さくなりますが、最終解析はポストシミュレーションのより大きな間隔で行われます)。

このDataFrameを構築する最良の方法は何ですか?大きなポストシミュレーション間隔(= 15分)

  • DateRangeインデックスは1日の最適化を行うとともに、通年の空DataFramedf

    1. 作成:

      これが私の最初のappraochました==>hereを説明するように、このDataFrame〜15分間隔で小さいインデックスとしてDateRange

    2. ダウンサンプリングを一時的df_tempを作成:
    3. df_temp
    4. 更新dfdfの行は、前の実行の最後の行を除いて、まだ空になっているので、私はdf_temp[1:]を取らなければならない)
    5. は同じ日のシミュレーションを行う==>間隔= 15分
    6. で一時的 df_temp2を作成
    7. df_temp2
    I、ステップ4で使用すべき方法

    )と6)でdfに対応する行を上書き?それとも最初から良い方法がありますか? おかげで、 ロエル

  • 答えて

    1

    私は行くための方法かもしれないDataFrame.combine_firstを使用しますが、データの規模に応じて、それだけで特定の行を変更し、「更新」のような方法を有することがより有用であるかもしれないことを考えます既存のDataFrame。 combine_firstがより一般的であり、結果が入力のいずれとも異なるサイズになる可能性があります(インデックスが結合されるため)。

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

    +0

    はい、combine_firstは限り、あなたはdf_temp' 'からそれを呼び出すように、確かに正常に動作します。空のDataFrameをインデックスなしでインスタンス化します。ご協力いただきありがとうございます。 – saroele