1

我正在批量运行每日模拟:我进行 365 次模拟以获得全年的结果。每次运行后,我想从结果中提取一些数组并将它们添加到 pandas.DataFrame 以供稍后分析。

我有一个粗略的模型(进行优化)和一个用于后期模拟的更精确的模型,所以我可以从两个来源获得相同的变量。如果后期模拟完成,结果可能会覆盖优化结果。
为了使其更复杂,优化模型具有较小的输出间隔,具体取决于离散化设置,但最终分析将发生在模拟后的较大间隔上)。

构造此 DataFrame 的最佳方法是什么?

这是我的第一个方法:

  1. DataFrame df为全年创建一个空白,DateRange索引具有较大的模拟后间隔(= 15 分钟)
  2. df_temp优化 1 天 ==>使用DateRange间隔较小的索引创建临时索引
  3. 如此处所述,将其缩减DataFrame至 15 分钟:
  4. 更新dfdf_temp(中的行df仍然是空的,除了上一次运行的最后一行,所以我必须采取df_temp[1:]
  5. 为同一天做模拟 ==>df_temp2以间隔 = 15 分钟创建临时
  6. df覆盖相应的行df_temp2

我应该在步骤 4) 和 6) 中使用哪些方法?还是从一开始就有更好的方法?谢谢,罗尔

4

1 回答 1

1

我认为 usingDataFrame.combine_first可能是要走的路,但根据数据的规模,使用像“更新”这样的方法可能更有用,它只修改现有 DataFrame 中的特定行。combine_first更通用,并且可能导致结果的大小与任一输入的大小不同(因为索引将合并在一起)。

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

于 2012-03-23T21:45:21.380 回答